home *** CD-ROM | disk | FTP | other *** search
- PROGRAM DISK_DIR_DB( INPUT,OUTPUT ) ;
-
-
- CONST
- {$I GEMCONST.PAS}
- Desk_Title = 3 ; { The index of the "desk" item in the menu bar }
-
- TYPE
- {$I gemtype.pas}
- S = FILE OF TEXT;
- FILE_NAME_TYPE = PACKED ARRAY [1..64] OF BYTE;
- BUF_TYPE = PACKED ARRAY [ 0..255 ] OF CHAR;
- BUFI_TYPE = INTEGER;
-
- VAR
- OUTPUT_FILE : S;
- OUT_FILE : S;
- BLdn : ARRAY [0..1100] OF STRING[4];
- BLAT : ARRAY [0..1100] OF STRING[2];
- BLname : ARRAY [0..1100] OF STRING[14];
- BLdate : ARRAY [0..1100] OF STRING[10];
- BLfold : ARRAY [0..1100] OF STRING[14];
- BLcomm : ARRAY [0..1100] OF STRING[26];
- SINDX : ARRAY [0..1100] OF INTEGER;
- TEMP_BLdn : ARRAY [0..1100] OF STRING[4];
- TEMP_BLAT : ARRAY [0..1100] OF STRING[2];
- TEMP_BLname : ARRAY [0..1100] OF STRING[14];
- TEMP_BLdate : ARRAY [0..1100] OF STRING[10];
- TEMP_BLfold : ARRAY [0..1100] OF STRING[14];
- PINDX : ARRAY [0..1100] OF INTEGER;
- SLINE : STRING ;
- Sline1 : string;
- Sline2 : string;
- Sline3 : string;
- Sline4 : string;
- Sline5 : string;
- title_line,
- info_line1,
- info_line2,
- info_line3,
- info_line4,
- info_line5,
- info_line6 :STR255;
- LINE_COUNT,COUNT,LAST_DISK : INTEGER;
- menu : Menu_Ptr ;
- last_sx,last_sy,last_sw,last_sh,wx,wy,ww,wh,
- txt_line,Txt_line1,Btn_a,Btn_b,Btn_c,p_name,ok,Cancel : INTEGER;
- txtln,txtln1,txtln2,btn_na,btn_ty,btn_da,btn_di,btn_fo,btn_co,
- ok1,cancel1,ok_button,info_item,
- btn_d,
- btn_e,
- btn_f,
- btn_g,
- btn_h,
- btn_i,
- btn_j,
- btn_k,
- btn_l,
- btn_m,
- btn_n,
- btn_o,
- btn_p,
- mc_line1,
- mc_line2,
- mc_line3,
- mc_line4,
- mc_line5,
- mc_line6 : integer;
- ACB : DIALOG_PTR;
- ACB_PROMT,ACB_PROMT1,ACB_PROMT2,ACB_PROMT3,ACB_GET,ACB_CANCEL,
- ACB_BOX1,ACB_BOX2,ACB_BOX21,ACB_BOX3,ACB_BOX4,ACB_BOX41,
- ACB_BOX5,ACB_BOX6,ACB_BOX61,ACB_BOX7,ACB_BOX8,ACB_BOX81 : INTEGER;
- Add_box,sort_box : Dialog_Ptr ;
- dialog :array [1..6] of Dialog_Ptr ;
- info_box : dialog_ptr;
- wtitle,wititle,wstitle : window_title;
- button, ok_btn, cancel_btn, prompt_item,GET_item : ARRAY [1..6] of Integer;
- CW,CH,CUR_LOC,N,SX,SY,SH,SW,bw,bh,
- dummy,handle,file_title,edit_title,SEARCH_TITLE,PRINT_TITLE,style_title,
- qt_item,stype_item,sdate_item,sname_item,sdnum_item,Sfnd_item,SFOLD_ITEM,
- flag1,COMB_ITEM,PRINTD_ITEM,PRINTP_ITEM,sort_item,BLANK_ITEM : INTEGER;
- BLANK1_ITEM,PRINTA_ITEM,PRINTC_ITEM,PRINTS_ITEM : integer;
- BLANK2_ITEM,BLANK3_ITEM,BLANK4_ITEM,BLANK5_ITEM,stat_ITEM,layout_ITEM,
- CHANGE_ITEM,COM_ITEM,open_item,close_item,white_item,black_item,ADD_item,
- LAST_LINE,w_options,vslsize,del_item,X,BLANK6_ITEM : integer ;
- help_title,
- item41,
- item42,
- item43,
- item44,
- item45,
- item46,
- item47,
- item48,
- item49,
- item50,
- item51,
- item52,
- item53,
- item54,
- item55,
- item56,
- item57,
- item58,
- item60,
- b_state,
- blank7_item,blank8_item,blank9_item : integer;
- PRNT_COUNT : INTEGER;
- alert1,PATH_STRING,SHW_BOX_STR,DNSTR,TOTL,LEFT,FOLDER : str255 ;
- FULL_NAME,PATH_NM,PATH_NM1 : PATH_NAME ;
- YN,COM_FLAG,ADD_FLAG,CANCEL_BOX,title_bar,COLOR_FLAG,
- SEARCH_FLAG,BUFFER_FLAG : BOOLEAN ;
- scrn_size,total_lines : REAL;
- first_flag,
- timer_flag,
- adrive,
- bdrive,
- cdrive,
- ddrive,
- edrive,
- fdrive,
- gdrive,
- hdrive,
- idrive,
- jdrive,
- kdrive,
- ldrive,
- mdrive,
- ndrive,
- odrive,
- pdrive : boolean;
-
- {$I gemsubs} { and that ".PAS" is default }
-
- FUNCTION gem_create( VAR fname : PATH_NAME ; mode : integer ) : integer;
- GEMDOS( $3C ) ;
-
- FUNCTION gem_open( VAR fname : PATH_NAME ; mode : integer ) : integer;
- GEMDOS( $3D ) ;
-
- PROCEDURE gem_close( handle : integer ) ;
- GEMDOS( $3E ) ;
-
- FUNCTION gem_read( handle : integer ; nbytes : long_integer ;
- VAR buf : BUF_TYPE ) : long_integer ;
- GEMDOS( $3F ) ;
- FUNCTION gem_readI( handle : integer ; nbytes : long_integer ;
- VAR buf : BUFI_TYPE ) : long_integer ;
- GEMDOS( $3F ) ;
-
- FUNCTION gem_write( handle : integer ; nbytes : long_integer ;
- VAR buf : BUF_TYPE ) : long_integer ;
- GEMDOS( $40 ) ;
- FUNCTION gem_writeI( handle : integer ; nbytes : long_integer ;
- VAR buf : BUFI_TYPE ) : long_integer ;
- GEMDOS( $40 ) ;
-
- PROCEDURE gem_seek( nbytes : long_integer ; handle, mode : integer ) ;
- GEMDOS( $42 ) ;
-
- FUNCTION drivmap : long_integer;
- BIOS(10);
-
- FUNCTION GETREZ : INTEGER;
- XBIOS($4);
-
- PROCEDURE SETSCREEN(LOGADR,PHYSADR : LONG_INTEGER; REZ : INTEGER);
- XBIOS($5);
-
-
- PROCEDURE SYSTEM_DRIVES;
-
- VAR X,y : LONG_INTEGER;
- z,xx : integer;
- BEGIN
- x := drivmap;
- y := x & $0000ffff;
- z := int(y);
- xx := z & $0001;
- if xx <> 0 then adrive := true
- else adrive := false;
- xx := z & $0002;
- if xx <> 0 then bdrive := true
- else bdrive := false;
- xx := z & $0004;
- if xx <> 0 then cdrive := true
- else cdrive := false;
- xx := z & $0008;
- if xx <> 0 then ddrive := true
- else ddrive := false;
- xx := z & $0010;
- if xx <> 0 then edrive := true
- else edrive := false;
- xx := z & $0020;
- if xx <> 0 then fdrive := true
- else fdrive := false;
- xx := z & $0040;
- if xx <> 0 then gdrive := true
- else gdrive := false;
- xx := z & $0080;
- if xx <> 0 then hdrive := true
- else hdrive := false;
- xx := z & $0100;
- if xx <> 0 then idrive := true
- else idrive := false;
- xx := z & $0200;
- if xx <> 0 then jdrive := true
- else jdrive := false;
- xx := z & $0400;
- if xx <> 0 then kdrive := true
- else kdrive := false;
- xx := z & $0800;
- if xx <> 0 then ldrive := true
- else ldrive := false;
- xx := z & $1000;
- if xx <> 0 then mdrive := true
- else mdrive := false;
- xx := z & $2000;
- if xx <> 0 then ndrive := true
- else ndrive := false;
- xx := z & $4000;
- if xx <> 0 then odrive := true
- else odrive := false;
- xx := z & $8000;
- if xx <> 0 then pdrive := true
- else pdrive := false;
- END;
-
- PROCEDURE INIT_MENU;
-
-
- BEGIN
- menu := New_Menu( 62, ' About MENU ' ) ;
- file_title := Add_MTitle( menu, ' File ' ) ;
- SEARCH_title := Add_MTitle( menu, ' Search \ Sort ' ) ;
- PRINT_title := Add_MTitle( menu, ' Print ' ) ;
- STYLE_TITLE := ADD_MTITLE( MENU, ' Style ' ) ;
- HELP_TITLE := ADD_MTITLE( MENU, ' Help ' ) ;
- open_item := Add_MItem( menu, file_title, ' OPEN FILE ' ) ;
- close_item := Add_MItem( menu, file_title, ' SAVE FILE ' ) ;
- BLANK1_item := Add_MItem( menu, file_title, '----------------' ) ;
- ADD_item := Add_MItem( menu, FILE_title, ' ADD FILES ' ) ;
- del_item := Add_MItem( menu, FILE_title, ' DELETE FILE ' ) ;
- BLANK2_item := Add_MItem( menu, file_title, '----------------' ) ;
- COM_item := Add_MItem( menu, FILE_title, ' ADD COMMENTS ' ) ;
- item60 := Add_MItem( menu, FILE_title, ' EDIT COMMENT ' ) ;
- BLANK_item := Add_MItem( menu, file_title, '----------------' ) ;
- qt_item := Add_MItem( menu, file_title, ' QUIT PROGRAM ' ) ;
- SNAME_item := Add_MItem( menu, search_title, ' by NAME ' ) ;
- STYPE_item := Add_MItem( menu, search_title, ' by TYPE ' ) ;
- sdate_item := Add_MItem( menu, search_title, ' by DATE ' ) ;
- sdnum_item := Add_MItem( menu, search_title, ' by DISK # ' ) ;
- sFOLD_item := Add_MItem( menu, search_title, ' by FOLDER ' ) ;
- COMB_item := Add_MItem( menu, search_title, ' by COMMENTS ' ) ;
- BLANK3_item := Add_MItem( menu, search_title, '----------------' ) ;
- PRINTA_item := Add_MItem( menu, SEARCH_title, ' BLOCK SEARCH ' ) ;
- Sfnd_item := Add_MItem( menu, search_title, ' FIND PATH ' ) ;
- blank4_item := Add_MItem( menu, search_title, '----------------' ) ;
- sort_item := Add_MItem( menu, search_title, ' SORT ' ) ;
- PRINTD_item := Add_MItem( menu, PRINT_title, ' PRINT ALL ' ) ;
- PRINTP_item := Add_MItem( menu, PRINT_title, ' PRINT BUFFER ' ) ;
- blank6_item := Add_MItem( menu, PRINT_title, '----------------' ) ;
- PRINTC_item := Add_MItem( menu, PRINT_title, ' ERASE BUFFER ' ) ;
- white_item := Add_MItem( menu, style_title, ' DEFAULT COLORS ' ) ;
- black_item := Add_MItem( menu, style_title, ' INVERSE COLORS ' ) ;
- blank5_item := Add_MItem( menu, STYLE_title, '------------------' ) ;
- STAT_item := Add_MItem( menu, STYLE_title, ' STATUS LINE ' ) ;
- layout_item := Add_MItem( menu, STYLE_title, ' LAYOUT LINE ' ) ;
- ITEM41 := Add_MItem( menu, HELP_title, ' OPEN FILE ' ) ;
- ITEM42 := Add_MItem( menu, HELP_title, ' SAVE FILE ' ) ;
- ITEM43 := Add_MItem( menu, HELP_title, ' ADD FILES ' ) ;
- ITEM44 := Add_MItem( menu, HELP_title, ' DELETE FILE ' ) ;
- ITEM45 := Add_MItem( menu, HELP_title, ' COMMENT ' ) ;
- item58 := Add_MItem( menu, HELP_title, ' EDIT COMMENT ' ) ;
- ITEM46 := Add_MItem( menu, HELP_title, ' QUIT PROGRAM ' ) ;
- BLANK7_ITEM := Add_MItem( menu, HELP_title, '------------------' ) ;
- ITEM47 := Add_MItem( menu, HELP_title, ' SEARCH ' ) ;
- ITEM48 := Add_MItem( menu, HELP_title, ' BLOCK SEARCH ' ) ;
- ITEM49 := Add_MItem( menu, HELP_title, ' FIND PATH ' ) ;
- ITEM50 := Add_MItem( menu, HELP_title, ' SORT ' ) ;
- BLANK8_ITEM := Add_MItem( menu, HELP_title, '------------------' ) ;
- ITEM51 := Add_MItem( menu, HELP_title, ' PRINT ALL ' ) ;
- ITEM52 := Add_MItem( menu, HELP_title, ' PRINT BUFFER ' ) ;
- ITEM53 := Add_MItem( menu, HELP_title, ' ERASE BUFFER ' ) ;
- BLANK9_ITEM := Add_MItem( menu, HELP_title, '------------------' ) ;
- ITEM54 := Add_MItem( menu, HELP_title, ' DEFAULT COLORS ' ) ;
- ITEM55 := Add_MItem( menu, HELP_title, ' INVERSE COLORS ' ) ;
- ITEM56 := Add_MItem( menu, HELP_title, ' STATUS LINE ' ) ;
- ITEM57 := Add_MItem( menu, HELP_title, ' LAYOUT LINE ' ) ;
- Draw_Menu( menu ) ;
- MENU_DISABLE(MENU,BLANK_ITEM);
- MENU_DISABLE(MENU,BLANK1_ITEM);
- MENU_DISABLE(MENU,BLANK2_ITEM);
- MENU_DISABLE(MENU,BLANK3_ITEM);
- MENU_DISABLE(MENU,BLANK4_ITEM);
- MENU_DISABLE(MENU,BLANK5_ITEM);
- MENU_DISABLE(MENU,BLANK6_ITEM);
- MENU_DISABLE(MENU,BLANK7_ITEM);
- MENU_DISABLE(MENU,BLANK8_ITEM);
- MENU_DISABLE(MENU,BLANK9_ITEM);
- MENU_CHECK(MENU,LAYOUT_ITEM,TRUE);
- title_bar := false;
- COM_FLAG := false;
- END;
-
- (* str - Convert the integer in the parameter 'n' to a string in 's'. The
- string may consist of a minus sign ('-'), followed by up to 5 digits of
- the number. The string will be the minimal length which will hold the
- number (i.e., leading plus signs and leading zeros will NOT appear in
- the final string!). *)
-
- PROCEDURE str( n: integer; VAR s: str255 );
-
- VAR
- digit, (* Holds each digit value of 'n' as it is created *)
- divisor, (* Division by this is used to find each digit *)
- i: integer; (* Index in string at which to put next character *)
- leading: boolean; (* True, if the next digit will be the leading digit *)
-
- (* add_char - Add a single character to the string, incrementing the curren
- index. *)
-
- PROCEDURE add_char( c: char );
-
- BEGIN
- i := i + 1;
- s[i] := c;
- END;
-
- BEGIN (* str - main routine *)
- i := 0; (* Start at the beginning of the string *)
- IF n < 0 THEN (* If the number is negative, add a minus sign *)
- BEGIN
- add_char( '-' );
- n := -n;
- END;
- (* Now divide the number by decreasing divisors to form each digit-- the
- divisor starts at 10000, since this is the maximum power of 10 which
- will fit into a positive integer. *)
- divisor := 10000;
- leading := true;
- WHILE divisor > 0 DO
- BEGIN
- (* Get the next digit value. If the digit is not zero, or the digit
- will not be the leading digit, then add it to the string (this
- inhibits the addition of leading zeros). *)
- digit := n DIV divisor;
- IF (digit <> 0) OR NOT( leading ) THEN
- BEGIN
- add_char( chr(digit + ord('0')) );
- leading := false;
- END;
- (* Throw away the part of the number just used, and decrease the
- divisor so we will get the next digit next time. *)
- n := n MOD divisor;
- divisor := divisor DIV 10;
- END;
- (* At this point, if the index is still zero, then we didn't add any
- characters to the string! The original number must have been zero, so
- just add that single character. *)
- IF i = 0 THEN
- add_char( '0' );
- (* Finally, set the length of the string to the final index value. *)
- s[0] := chr(i);
- END;
-
- Procedure infobox;
-
- var str1 : str255;
- BUTTON : INTEGER;
- INFO_BOX : DIALOG_PTR;
- INFO_ITEM, OK_BUTTON : INTEGER;
- SF : INTEGER;
-
- begin
- sf := System_Font;
- str1 := ' THE MENU ';
- STR1[1] := CHR(14);
- STR1[2] := CHR(15);
- STR1[15] := CHR(14);
- STR1[16] := CHR(15);
- Info_Box := New_Dialog(17,0,0,40,20);
- info_item := Add_DItem(Info_Box,G_Text,None,2,1,36,1,0,$1180);
- Set_DText(Info_Box,info_item,STR1,sf,TE_Center);
- info_item := Add_DItem(Info_Box,G_Text,None,2,3,36,1,0,$1180);
- Set_DText(Info_Box,info_item,'by M.F. HOLLENBECK',sf,TE_Center);
- STR1 := 'Copyright 1987';
- str1[11] := chr(189);
- info_item := Add_DItem(Info_Box,G_Text,None,2,5,36,1,0,$1180);
- Set_DText(Info_Box,info_item,str1,sf,TE_Center);
- info_item := Add_DItem(Info_Box,G_Text,None,2,7,36,1,0,$1180);
- Set_DText(Info_Box,info_item,'Version 1.0',sf,TE_Center);
- info_item := Add_DItem(Info_Box,G_Text,None,2,9,36,1,0,$1180);
- Set_DText(Info_Box,info_item,'from Future Software Systems',sf,TE_Center);
- info_item := Add_DItem(Info_Box,G_Text,None,2,10,36,1,0,$1180);
- Set_DText(Info_Box,info_item,'21125 Chatsworth st.',sf,TE_Center);
- info_item := Add_DItem(Info_Box,G_Text,None,2,11,36,1,0,$1180);
- Set_DText(Info_Box,info_item,'Chatsworth Ca. 91311',sf,TE_Center);
- info_item := Add_DItem(Info_Box,G_Text,None,2,12,36,1,0,$1180);
- Set_DText(Info_Box,info_item,'(818)-341-8681',sf,TE_Center);
- info_item := Add_DItem(Info_Box,G_Text,None,2,14,36,1,0,$1180);
- Set_DText(Info_Box,info_item,'PLACED IN THE PUBLIC DOMAIN',sf,TE_Center);
- info_item := Add_DItem(Info_Box,G_Text,None,2,15,36,1,0,$1180);
- Set_DText(Info_Box,info_item,'NOT FOR RESALE',sf,TE_Center);
- ok_button := Add_DItem(Info_Box,G_Button,Selectable|Exit_Btn|Default,
- 15,17,8,2,2,$1180);
- Set_DText(Info_Box,ok_button,'OK',sf,TE_Center);
- Center_Dialog(Info_Box);
- button := Do_Dialog(Info_Box,0);
- End_Dialog(Info_Box);
- Delete_Dialog(Info_Box);
- end;
-
- PROCEDURE upercase(var str1 : str255);
-
- var i,j : integer;
-
- begin
- for i := 1 to length(str1) do
- begin
- if str1[i] IN ['a'..'z'] then
- begin
- j := ord(str1[i]) - ord('a') + ord('A');
- str1[i] := chr(j);
- end;
- end;
- end;
-
- procedure data_box;
-
- var sf : integer;
- button : integer;
-
- begin
- Info_Box := New_Dialog(30,0,0,62,11);
- sf := System_Font;
- info_item := Add_DItem(Info_Box,G_Text,None,2,1,58,1,0,$1180);
- Set_DText(Info_Box,info_item,title_line,sf,TE_center);
- mc_line1 := Add_DItem(Info_box,g_text,none,2,4,50,1,0,$1180);
- set_dtext(info_box,mc_line1,info_line1,sf,te_left);
- mc_line2 := Add_DItem(Info_box,g_text,none,2,5,50,1,0,$1180);
- set_dtext(info_box,mc_line2,info_line2,sf,te_left);
- mc_line3 := Add_DItem(Info_box,g_text,none,2,6,50,1,0,$1180);
- set_dtext(info_box,mc_line3,info_line3,sf,te_left);
- mc_line4 := Add_DItem(Info_box,g_text,none,2,7,50,1,0,$1180);
- set_dtext(info_box,mc_line4,info_line4,sf,te_left);
- mc_line5 := Add_DItem(Info_box,g_text,none,2,8,50,1,0,$1180);
- set_dtext(info_box,mc_line5,info_line5,sf,te_left);
- mc_line6 := Add_DItem(Info_box,g_text,none,2,9,50,1,0,$1180);
- set_dtext(info_box,mc_line6,info_line6,sf,te_left);
- ok_button := Add_DItem(Info_Box,G_Button,Selectable|Exit_Btn|Default,
- 54,4,4,6,0,$1180);
- Set_DText(Info_Box,ok_button,'OK',sf,TE_Center);
- Center_Dialog(Info_Box);
- button := Do_Dialog(Info_Box,0);
- End_Dialog(Info_Box);
- Delete_Dialog(Info_Box);
- end;
-
-
- Procedure item41_proc;
-
- begin
- title_line := 'The " OPEN " Menu item';
- info_line1 := 'This menu selection will LOAD directory files from';
- info_line2 := 'the disk. ';
- info_line3 := ' ';
- info_line4 := ' CAUTION ';
- info_line5 := 'Take care that the file you choose is a valid ';
- info_line6 := 'directory file or an ERROR may result. ';
- data_box;
- end;
-
- Procedure item42_proc;
-
- begin
- title_line := 'The " SAVE AS " Menu item';
- info_line1 := 'This menu selection allows you to save the current';
- info_line2 := 'directory in memory to a disk file. ';
- info_line3 := ' ';
- info_line4 := ' CAUTION ';
- info_line5 := 'Try to use a ".DIR" extention on the filename you ';
- info_line6 := 'choose ';
- data_box;
- end;
-
- Procedure item43_proc;
-
- begin
- title_line := 'The " ADD " Menu item';
- info_line1 := 'Adding directories to the data base is very simple';
- info_line2 := 'the first box you see will ask for a disk number ';
- info_line3 := 'enter a number from 1 to 1000 and mark the disk ';
- info_line4 := 'you are going to catalog with this number. ';
- info_line5 := 'THIS STEP IS VERY IMPORTANT if you forget to mark ';
- info_line6 := 'the disk you will have trouble finding it latter. ';
- data_box;
- title_line := 'The " ADD " Menu item continued...';
- info_line1 := 'after you have entered the number of the disk and ';
- info_line2 := 'marked it, insert the disk in the drive of your ';
- info_line3 := 'choice. ( if you are working with a hard disk ';
- info_line4 := 'try to catalogue it first. Make drive "C" number 1';
- info_line5 := 'drive "D" number two etc. After you have finished';
- info_line6 := 'the hard disks then do the floppies. ) ';
- data_box;
- title_line := 'The " ADD " Menu item continued...';
- info_line1 := 'the next box will ask for you to choose a drive ';
- info_line2 := 'THE MENU will allow you to search any drive that ';
- info_line3 := 'is active at the time the program was started. ';
- info_line4 := 'Just click the mouse button on the drive you wish ';
- info_line5 := 'to search and click the OK button. If you wish to ';
- info_line6 := 'CANCEL the operation click on the CANCEL button. ';
- data_box;
- title_line := 'The " ADD " Menu item continued...';
- info_line1 := 'THE MENU will now search the disk you selected and';
- info_line2 := 'add its contents to the data base. ';
- info_line3 := 'If the COMMENTS menu item is checked the program ';
- info_line4 := 'will but up another box asking for a comment. You ';
- info_line5 := 'have a choice of any of the 12 predefined comments';
- info_line6 := 'or you can enter your own. ';
- data_box;
- title_line := 'The " ADD " Menu item continued...';
- info_line1 := 'This box will be reapeated untill all the files ';
- info_line2 := 'are commented. ';
- info_line3 := 'If you change the files on a disk and want to ';
- info_line4 := 'update the data base simply reread the disk with ';
- info_line5 := 'the same disk number and THE MENU will automaticly';
- info_line6 := 'update the data base. ';
- data_box;
- end;
-
- Procedure item44_proc;
-
- begin
- title_line := 'The " DELETE " Menu item';
- info_line1 := 'This menu selection will allow you to delete a ';
- info_line2 := 'file from the data base. Just click on this menu ';
- info_line3 := 'item and enter the filename you want deleted. ';
- info_line4 := ' CAUTION ';
- info_line5 := 'Make sure you enter the filename exactly as it ';
- info_line6 := 'appears in the data base. ';
- data_box;
- end;
-
- Procedure item45_proc;
-
- begin
- title_line := 'The " COMMENT " Menu item';
- info_line1 := ' ';
- info_line2 := ' ';
- info_line3 := ' ';
- info_line4 := 'If this item is checked the computer will prompt ';
- info_line5 := 'you for comments after the directory has been read';
- info_line6 := 'into memory. ';
- data_box;
- end;
-
- Procedure item46_proc;
-
- begin
- title_line := 'The " QUIT " Menu item';
- info_line1 := 'This menu selection will ask if you are sure you ';
- info_line2 := 'you want to quit. If you answer yes it will stop ';
- info_line3 := 'the program and return you to the desktop. ';
- info_line4 := ' ';
- info_line5 := ' CAUTION ';
- info_line6 := 'MAKE SURE YOU HAVE SAVED THE FILE IN MEMORY FIRST ';
- data_box;
- end;
-
- Procedure item47_proc;
-
- begin
- title_line := ' SEARCHING THE DATA BASE ';
- info_line1 := 'You can search the data base by any one of the six';
- info_line2 := 'catagories. (NAME, TYPE, DATE, FOLDER, DISK # AND ';
- info_line3 := 'COMMENTS ) Just click on the field you want to ';
- info_line4 := 'search on and follow the promts. The file if found';
- info_line5 := 'will appear just below the title bar on the window';
- info_line6 := 'The search is a CONTAINS search so you dont have ';
- data_box;
- title_line := ' SEARCHING THE DATA BASE cont. ';
- info_line1 := 'enter the full name. the computer will show the ';
- info_line2 := 'first occurance of that file. and the window will ';
- info_line3 := 'position itself so that the file is the top one ';
- info_line4 := 'listed on the screen. EXAMPLE if you sort by TYPE ';
- info_line5 := 'and then search for .PRG the computer will move ';
- info_line6 := 'the window to the fist file with a .PRG extention.';
- data_box;
- title_line := ' SEARCHING THE DATA BASE cont. ';
- info_line1 := 'If a file is found the computer will ask if you ';
- info_line2 := 'want to add it to the print buffer for latter ';
- info_line3 := 'printing this can be usefull if you want to list ';
- info_line4 := 'only a few files to the printer or disk. ';
- info_line5 := ' ';
- info_line6 := ' ';
- data_box;
- end;
-
- Procedure item48_proc;
-
- begin
- title_line := 'The " BLOCK SEARCH " Menu item';
- info_line1 := 'This menu selection functions about the same as ';
- info_line2 := 'the single search except it does not move the ';
- info_line3 := 'window and it will continue the search returning ';
- info_line4 := 'all files that match. ';
- info_line5 := ' ';
- info_line6 := ' ';
- data_box;
- end;
-
- Procedure item49_proc;
-
- begin
- title_line := 'The " FIND PATH " Menu item';
- info_line1 := 'This menu selection is probably one of the most ';
- info_line2 := 'useful funtions in the program. If you have allot ';
- info_line3 := 'of disks or a hard disk with allot of files you ';
- info_line4 := 'can use this function to find a particular file. ';
- info_line5 := 'it will show the file and complete path on the ';
- info_line6 := 'information bar. IE: disk #25 FOLDER1\FOLDER2\FILE';
- data_box;
- end;
-
- Procedure item50_proc;
-
- begin
- title_line := 'The " SORT " Menu item';
- info_line1 := 'This menu selection will sort your data base by ';
- info_line2 := 'any of the six fields ( NAME, DATE, DISK #, FOLDER';
- info_line3 := 'TYPE AND COMMENTS ). ';
- info_line4 := ' CAUTION ';
- info_line5 := 'A FULL DATA BASE CAN TAKE AS MUCH AS 30 SECONDS TO';
- info_line6 := 'SORT. ';
- data_box;
- end;
-
- Procedure item51_proc;
-
- begin
- title_line := 'The " PRINT ALL " Menu item';
- info_line1 := 'This menu selection will allow you to print the ';
- info_line2 := 'entire data base to the printer or if you prefure ';
- info_line3 := 'to the disk for use with your favorite word proc. ';
- info_line4 := ' CAUTION ';
- info_line5 := ' MAKE SURE YOUR PRINTER IS CONNECTED ';
- info_line6 := ' ';
- data_box;
- end;
-
- Procedure item52_proc;
-
- begin
- title_line := 'The " PRINT BUFFER " Menu item';
- info_line1 := 'This menu selection will print only the file in ';
- info_line2 := 'print buffer to your printer or to disk. ';
- info_line3 := 'As an example if you want to just print all the ';
- info_line4 := 'files with a ".PRG" extention you would first use ';
- info_line5 := 'the BLOCK SEARCH function and put all the files in';
- info_line6 := 'the print buffer then choose this option. ';
- data_box;
- end;
-
- Procedure item53_proc;
-
- begin
- title_line := 'The " ERASE BUFFER " Menu item';
- info_line1 := 'This menu selection will clear the print buffer. ';
- info_line2 := ' ';
- info_line3 := ' ';
- info_line4 := ' CAUTION ';
- info_line5 := 'THIS FUNCTION WILL CLEAR THE ENTIRE BUFFER MAKE ';
- info_line6 := 'SURE YOU HAVE PRINTED THE BUFFER BEFORE CLEARING. ';
- data_box;
- end;
-
- Procedure item54_proc;
-
- begin
- title_line := 'The " DEFAULT COLORS " Menu item';
- info_line1 := 'This menu selection will show the screen in the ';
- info_line2 := 'default colors that were in memory when you loaded';
- info_line3 := 'the program. ';
- info_line4 := ' ';
- info_line5 := ' ';
- info_line6 := ' ';
- data_box;
- end;
-
- Procedure item55_proc;
-
- begin
- title_line := 'The " INVERSE COLORS " Menu item';
- info_line1 := 'This menu selection will invert the colors on the ';
- info_line2 := 'screen IE: white becomes black and black becomes ';
- info_line3 := 'white. ';
- info_line4 := ' NOTE ';
- info_line5 := 'On a color system black will be blue because it is';
- info_line6 := 'easier on the eyes. ';
- data_box;
- end;
-
- Procedure item56_proc;
-
- begin
- title_line := 'The " STATUS LINE " Menu item';
- info_line1 := 'This menu selection will change the information ';
- info_line2 := 'bar just below the title bar to show the status of';
- info_line3 := 'the data base. ';
- info_line4 := ' ';
- info_line5 := ' ';
- info_line6 := ' ';
- data_box;
- end;
-
- Procedure item57_proc;
-
- begin
- title_line := 'The " LAYOUT LINE " Menu item';
- info_line1 := 'This menu selection will change the information ';
- info_line2 := 'bar located just below the title bar to show the ';
- info_line3 := 'layout of the screen. ';
- info_line4 := ' ';
- info_line5 := ' ';
- info_line6 := ' ';
- data_box;
- end;
-
- Procedure item58_proc;
-
- begin
- title_line := 'The " EDIT COMMENT " Menu item';
- info_line1 := 'This menu selection will allow you to change the ';
- info_line2 := 'comment field of any filename in the data base. ';
- info_line3 := 'Just click on this menu item and a box will appear';
- info_line4 := 'on the screen asking for the filename. ';
- info_line5 := ' CAUTION ';
- info_line6 := ' THE FILENAME MUST BE AN EXACT MATCH. ';
- data_box;
- title_line := 'The " EDIT COMMENT " Menu item cont...';
- info_line1 := 'After you have entered the filename click on the ';
- info_line2 := 'OK button. The comments box will appear on the ';
- info_line3 := 'screen. The current comment if any will appear on ';
- info_line4 := 'the editable line on the bottom of the box. If you';
- info_line5 := 'want to change the comment just backspace over it ';
- info_line6 := 'and reenter what you want it to say or you can ';
- data_box;
- title_line := 'The " EDIT COMMENT " Menu item cont...';
- info_line1 := 'click on any one of the predefined comments. If ';
- info_line2 := 'you choose not to change the comment just hit ';
- info_line3 := 'return on the keyboard and the field will be left ';
- info_line4 := 'unchanged. ';
- info_line5 := 'NOTE: THIS FUNCTION WILL SEARCH FOR ALL ';
- info_line6 := ' OCCURENCES OF A FILE. ';
- data_box;
- title_line := 'The " EDIT COMMENT " Menu item cont...';
- info_line1 := 'Another way to edit a comment field is to double ';
- info_line2 := 'click the mouse pointer over the filename of your ';
- info_line3 := 'choice. A dialog box will appear asking if you ';
- info_line4 := 'like to place the file in the print buffer or edit';
- info_line5 := 'the comment field. If you choose comment follow ';
- info_line6 := 'previous instructions. ';
- data_box;
- end;
-
- PROCEDURE SAVE_DB;
-
- VAR HANDLE,X,Y,Z,Q,F,F1 : INTEGER;
- NBYTES,ERR : LONG_INTEGER;
- BUF : BUF_TYPE;
- FN : STR255;
-
- BEGIN
- IF GET_IN_FILE(PATH_NM,FULL_NAME) THEN
- BEGIN
- FN := FULL_NAME;
- X := 0;
- Y := 1;
- WHILE X <= LENGTH(FN) DO
- BEGIN
- FULL_NAME[X] := FN[Y];
- X := X +1;
- Y := Y +1;
- END;
- FULL_NAME[X] := CHR(0);
- HANDLE := GEM_CREATE(FULL_NAME,0);
- NBYTES := 3;
- BUF[0] := 'D';
- BUF[1] := 'I';
- BUF[2] := 'R';
- ERR := GEM_WRITE(HANDLE,NBYTES,BUF);
- NBYTES := 2;
- ERR := GEM_WRITEI(HANDLE,NBYTES,LAST_LINE);
- ERR := GEM_WRITEI(HANDLE,NBYTES,LAST_DISK);
- IF TITLE_BAR = FALSE THEN
- F := 1
- ELSE
- F := 2;
- IF COLOR_FLAG THEN
- F1 := 1
- ELSE
- F1 := 2;
- ERR := GEM_WRITEI(HANDLE,NBYTES,F);
- ERR := GEM_WRITEI(HANDLE,NBYTES,F1);
- IF ERR >= 0 THEN
- BEGIN
- FOR X := 0 TO LAST_LINE DO
- BEGIN
- FOR Q := 0 TO 85 DO
- BUF[Q] := ' ';
- Z := 0;
- FOR Y := 1 TO LENGTH(BLDN[SINDX[X]]) DO
- BEGIN
- BUF[Z] := BLDN[SINDX[X],Y];
- Z := Z +1;
- END;
- Z := 5;
- FOR Y := 1 TO LENGTH(BLAT[SINDX[X]]) DO
- BEGIN
- BUF[Z] := BLAT[SINDX[X],Y];
- Z := Z +1;
- END;
- Z := 8;
- FOR Y := 1 TO LENGTH(BLNAME[SINDX[X]]) DO
- BEGIN
- BUF[Z] := BLNAME[SINDX[X],Y];
- Z := Z +1;
- END;
- Z := 23;
- FOR Y := 1 TO LENGTH(BLDATE[SINDX[X]]) DO
- BEGIN
- BUF[Z] := BLDATE[SINDX[X],Y];
- Z := Z +1;
- END;
- Z := 34;
- FOR Y := 1 TO LENGTH(BLFOLD[SINDX[X]]) DO
- BEGIN
- BUF[Z] := BLFOLD[SINDX[X],Y];
- Z := Z +1;
- END;
- Z := 49;
- FOR Y := 1 TO LENGTH(BLCOMM[SINDX[X]]) DO
- BEGIN
- BUF[Z] := BLCOMM[SINDX[X],Y];
- Z := Z +1;
- END;
- NBYTES := 80;
- ERR := GEM_WRITE(HANDLE,NBYTES,BUF)
- END;
- END;
- GEM_CLOSE(HANDLE);
- END;
- END;
-
-
-
- PROCEDURE QSORT( START,TOP,X : INTEGER );
-
- TYPE STANDARY = ARRAY [0..1000] OF STRING[26];
- SUBARY = ARRAY [0..4] OF STRING[26];
- VAR sarray : array [0..1000] of string[26];
-
- PROCEDURE XFER(TOP,FIELD : INTEGER);
-
- VAR I,X,Y,Z : INTEGER;
- TEMP : STRING[30];
-
- BEGIN
- CASE FIELD OF
- 1: FOR I := 0 TO TOP DO
- SARRAY[SINDX[I]] := BLDN[SINDX[I]];
- 2: FOR I := 0 TO TOP DO
- SARRAY[SINDX[I]] := BLNAME[SINDX[I]];
- 3: FOR I := 0 TO TOP DO
- BEGIN
- TEMP[1] := BLDATE[SINDX[I],7];
- TEMP[2] := BLDATE[SINDX[I],8];
- TEMP[3] := BLDATE[SINDX[I],1];
- TEMP[4] := BLDATE[SINDX[I],2];
- TEMP[5] := BLDATE[SINDX[I],4];
- TEMP[6] := BLDATE[SINDX[I],5];
- TEMP[0] := CHR(6);
- SARRAY[SINDX[I]] := TEMP;
- END;
- 4: FOR I := 0 TO TOP DO
- SARRAY[SINDX[I]] := BLFOLD[SINDX[I]];
- 5: FOR I := 0 TO TOP DO
- SARRAY[SINDX[I]] := BLCOMM[SINDX[I]];
- 6: FOR I := 0 TO TOP DO
- BEGIN
- X := POS( '.',BLNAME[SINDX[I]] );
- IF X = 0 THEN
- TEMP := ' '
- ELSE
- BEGIN
- Y := LENGTH( BLNAME[SINDX[I]] );
- Z := 1;
- WHILE X <= Y DO
- BEGIN
- TEMP[Z] := BLNAME[SINDX[I],X];
- X:= X+1;
- Z:= Z+1;
- END;
- TEMP[0] := CHR(Z - 1);
- END;
- SARRAY[SINDX[I]] := TEMP;
- END;
- END;
- END;
-
- PROCEDURE SWAP( A,B : INTEGER );
- VAR C : INTEGER;
- BEGIN
- C := SINDX[A];
- SINDX[A] := SINDX[B];
- SINDX[B] := C;
- END;
-
- PROCEDURE BSORT(START,TOP:INTEGER; VAR ARRY : STANDARY );
-
- VAR INDEX : INTEGER;
- SWITCHED : BOOLEAN;
-
- BEGIN
- REPEAT
- SWITCHED := FALSE;
- FOR INDEX := START TO TOP -1 DO
- BEGIN
- IF ARRY[sindx[INDEX]] > ARRY[sindx[INDEX+1]] THEN
- BEGIN
- SWAP(INDEX,INDEX+1);
- SWITCHED := TRUE;
- END;
- END;
- UNTIL SWITCHED = FALSE;
- END;
- PROCEDURE BSORTA(START,TOP:INTEGER; VAR ARRY: SUBARY);
-
- VAR INDEX : INTEGER;
- SWITCHED : BOOLEAN;
-
- BEGIN
- REPEAT
- SWITCHED := FALSE;
- FOR INDEX := START TO TOP -1 DO
- BEGIN
- IF ARRY[INDEX] > ARRY[INDEX+1] THEN
- BEGIN
- SWAP(INDEX,INDEX+1);
- SWITCHED := TRUE;
- END;
- END;
- UNTIL SWITCHED = FALSE;
- END;
-
- PROCEDURE FINDMED(START,TOP:INTEGER;VAR ARRY: STANDARY );
-
- VAR MIDDLE : INTEGER;
- SORTED : ARRAY [0..4] OF STRING[26];
-
- BEGIN
- MIDDLE := (START + TOP) DIV 2;
- SORTED[1] := ARRY[SINDX[START]];
- SORTED[2] := ARRY[SINDX[TOP]];
- SORTED[3] := ARRY[SINDX[MIDDLE]];
- BSORTA(1,3,SORTED);
- IF SORTED[3] = ARRY[SINDX[MIDDLE]] THEN
- SWAP(SINDX[START],SINDX[MIDDLE])
- ELSE IF SORTED[2] = ARRY[SINDX[TOP]] THEN
- SWAP(SINDX[START],SINDX[TOP]);
- END;
-
- PROCEDURE SORTSECTION( START,TOP : INTEGER );
-
- VAR SWAPUP : BOOLEAN;
- S,E,M : INTEGER;
-
- BEGIN
- IF START- TOP < 20 THEN
- BSORT(START,TOP,SARRAY)
- ELSE
- BEGIN
- FINDMED(START,TOP,SARRAY);
- SWAPUP := TRUE;
- S := START;
- E := TOP;
- M := START;
- WHILE E > S DO
- BEGIN
- IF SWAPUP = TRUE THEN
- BEGIN
- WHILE (SARRAY[SINDX[E]] >= SARRAY[SINDX[M]]) AND (E>M) DO
- E := E-1;
- IF E > M THEN
- BEGIN
- SWAP(SINDX[E],SINDX[M]);
- M := E;
- END;
- SWAPUP := FALSE;
- END
- ELSE
- BEGIN
- WHILE (SARRAY[SINDX[S]] <= SARRAY[SINDX[M]]) AND (S<M) DO
- S := S+1;
- IF S<M THEN
- BEGIN
- SWAP(SINDX[S],SINDX[M]);
- M := S;
- END;
- SWAPUP := TRUE;
- END;
- END;
- SORTSECTION(START,M-1);
- SORTSECTION(M+1,TOP);
- END;
- END;
-
- BEGIN (* QSORT *)
- XFER(TOP,X);
- SORTSECTION(START,TOP);
- END; (* QSORT *)
-
- PROCEDURE VSSIZE( TOTAL_LINES : REAL );
- VAR SCRN_SIZE,tl : REAL;
-
- BEGIN
- tl := total_lines;
- SYS_FONT_SIZE(CW,CH,bw,bh) ;
- WORK_RECT( HANDLE,SX,SY,SW,SH );
- scrn_size := sh div bh;
- IF TOTAL_LINES < SCRN_SIZE THEN tl := SCRN_SIZE;
- vslsize := ROUND((SCRN_SIZE / tl) * 1000);
- wind_set(handle,wf_vslsize,vslsize,dummy,dummy,dummy);
- END;
-
- PROCEDURE VSPOS( CUR_LOC : INTEGER );
- VAR ADJ,J,TL : REAL;
- VSP : INTEGER;
-
- BEGIN
- BEGIN
- TL := TOTAL_LINES;
- IF TL >= 14 THEN TL := TL - 14;
- IF TL > 0 THEN
- BEGIN
- ADJ := 1000 / TL;
- J := CUR_LOC;
- VSP := ROUND(J * ADJ);
- WIND_SET(HANDLE,WF_VSLIDE,VSP,DUMMY,DUMMY,DUMMY);
- END;
- END;
- END;
-
- PROCEDURE SIZE_WINDOW( HANDLE : INTEGER );
-
- BEGIN
- SET_WSIZE( HANDLE,LAST_SX,LAST_SY,LAST_SW,LAST_SH );
- last_sx := wx;
- last_sy := wy;
- last_sw := ww;
- last_sh := wh;
- wind_get(handle,wf_prevxywh,wx,wy,ww,wh);
- WORK_RECT( HANDLE,SX,SY,SW,SH );
- VSSIZE( TOTAL_LINES );
- VSPOS( CUR_LOC );
- END;
-
- PROCEDURE MOVE_WINDOW( HANDLE,X,Y,W,H : INTEGER );
-
- BEGIN
- last_sx := wx;
- last_sy := wy;
- last_sw := ww;
- last_sh := wh;
- SET_WSIZE( HANDLE, X, Y, W, H );
- WORK_RECT( HANDLE,SX,SY,SW,SH );
- wind_get(handle,wf_prevxywh,wx,wy,ww,wh);
- END;
-
- PROCEDURE CLOSE_BTN(HANDLE : INTEGER );
-
- VAR ALERT23 :STR255;
-
- BEGIN
- ALERT23 := '[2][ARE YOU SURE YOU WANT TO QUIT ?][ NO | YES ]';
- FLAG1 := DO_ALERT(ALERT23,1);
- END;
-
-
- PROCEDURE SET_TITLE_BAR( X : INTEGER );
-
- VAR Y : INTEGER;
- STR1,STR2,STR3,STR4,STR5,STR6 : STR255;
-
- BEGIN
- CASE X OF
- 1: BEGIN
- WItitle :=
- ' D# |F |FILENAME |DATE |FOLDER |COMMENTS.... ';
- Set_WInfo(Handle,WItitle);
- MENU_CHECK(MENU,LAYOUT_ITEM,TRUE);
- MENU_CHECK(MENU,STAT_ITEM,FALSE);
- TITLE_BAR := FALSE;
- END;
-
- 2: BEGIN
- STR(LAST_LINE ,TOTL);
- Y := 1000 - LAST_LINE;
- STR(Y,LEFT);
- STR1 := 'TOTAL FILES > ';
- STR2 := ' |CURENT LINE > ';
- STR5 := ' |FREE SPACE > ';
- STR3 := ' |LAST DISK # > ';
- STR(LAST_DISK,STR6);
- STR(CUR_LOC,STR4);
- WITITLE := CONCAT(STR1,TOTL,STR2,STR4,STR3,STR6,STR5,LEFT);
- Set_WInfo(Handle,WItitle);
- MENU_CHECK(MENU,LAYOUT_ITEM,FALSE);
- MENU_CHECK(MENU,STAT_ITEM,TRUE);
- TITLE_BAR := TRUE;
- END;
- END;
- END;
-
-
- PROCEDURE PRNT_SCR;
-
- VAR N,MAX,LP,ADJ,ch1,cnt : INTEGER;
-
- BEGIN
- hide_mouse;
- ch1 := BH;
- MAX := SH DIV BH ;
- ADJ := SY + CH1 - 2;
- paint_rect(sx-1,sy-4,sw+1,sh+4);
- cnt := cur_loc;
- FOR N := 0 TO MAX DO
- BEGIN
- LP := (CH1 * N) + ADJ ;
- DRAW_STRING(SX,LP,BLdn[SINDX[cnt]]) ;
- DRAW_STRING(SX+(5*CW),LP,BLAT[SINDX[cnt]]) ;
- DRAW_STRING(SX+(8*cw),LP,BLname[SINDX[cnt]]) ;
- DRAW_STRING(SX+(22*cw),LP,BLdate[SINDX[cnt]]) ;
- DRAW_STRING(SX+(32*cw),LP,BLfold[SINDX[cnt]]) ;
- DRAW_STRING(SX+(48*cw),LP,BLcomm[SINDX[cnt]]) ;
- cnt := cnt + 1;
- END;
- IF TITLE_BAR = FALSE THEN SET_TITLE_BAR(1);
- IF TITLE_BAR = TRUE THEN SET_TITLE_BAR(2);
- show_mouse;
- END;
-
-
- PROCEDURE ADD_COM_BOX ;
-
-
- VAR
- PSA,PSB,PSC : STR255;
-
- begin
- PSA := '_________________________';
- PSB := 'XXXXXXXXXXXXXXXXXXXXXXXXX';
- PSC := '';
- ACB := NEW_DIALOG(21,0,0,45,19);
- ACB_PROMT1 := ADD_DITEM(ACB,G_STRING,NONE,5,1,0,0,0,0);
- SET_DTEXT(ACB,ACB_PROMT1,'FILENAME:',SYSTEM_FONT,TE_LEFT);
- ACB_PROMT := ADD_DITEM(ACB,G_STRING,NONE,20,1,0,0,0,0);
- SET_DTEXT(ACB,ACB_PROMT,'--------------',SYSTEM_FONT,TE_LEFT);
- ACB_PROMT2 := ADD_DITEM(ACB,G_STRING,NONE,5,3,0,0,0,0);
- SET_DTEXT(ACB,ACB_PROMT2,'Choose a Comment :',SYSTEM_FONT,TE_LEFT);
- ACB_BOX1 := ADD_DITEM(ACB,G_BUTTON,SELECTABLE|EXIT_BTN,5,5,10,1,-1,$1180);
- SET_DTEXT(ACB,ACB_BOX1,'GAME/ENT',SYSTEM_FONT,TE_CENTER);
- ACB_BOX2 := ADD_DITEM(ACB,G_BUTTON,SELECTABLE|EXIT_BTN,17,5,10,1,-1,$1180);
- SET_DTEXT(ACB,ACB_BOX2,'ART/VID ',SYSTEM_FONT,TE_CENTER);
- ACB_BOX21 := ADD_DITEM(ACB,G_BUTTON,SELECTABLE|EXIT_BTN,29,5,10,1,-1,$1180);
- SET_DTEXT(ACB,ACB_BOX21,'DEMO',SYSTEM_FONT,TE_CENTER);
- ACB_BOX3 := ADD_DITEM(ACB,G_BUTTON,SELECTABLE|EXIT_BTN,5,7,10,1,-1,$1180);
- SET_DTEXT(ACB,ACB_BOX3,'UTILITY ',SYSTEM_FONT,TE_CENTER);
- ACB_BOX4 := ADD_DITEM(ACB,G_BUTTON,SELECTABLE|EXIT_BTN,17,7,10,1,-1,$1180);
- SET_DTEXT(ACB,ACB_BOX4,'TELECOM ',SYSTEM_FONT,TE_CENTER);
- ACB_BOX41 := ADD_DITEM(ACB,G_BUTTON,SELECTABLE|EXIT_BTN,29,7,10,1,-1,$1180);
- SET_DTEXT(ACB,ACB_BOX41,'DATA',SYSTEM_FONT,TE_CENTER);
- ACB_BOX5 := ADD_DITEM(ACB,G_BUTTON,SELECTABLE|EXIT_BTN,5,9,10,1,-1,$1180);
- SET_DTEXT(ACB,ACB_BOX5,'LANGUAGE',SYSTEM_FONT,TE_CENTER);
- ACB_BOX6 := ADD_DITEM(ACB,G_BUTTON,SELECTABLE|EXIT_BTN,17,9,10,1,-1,$1180);
- SET_DTEXT(ACB,ACB_BOX6,'DOCUMENT',SYSTEM_FONT,TE_CENTER);
- ACB_BOX61 := ADD_DITEM(ACB,G_BUTTON,SELECTABLE|EXIT_BTN,29,9,10,1,-1,$1180);
- SET_DTEXT(ACB,ACB_BOX61,'DESK ACC',SYSTEM_FONT,TE_CENTER);
- ACB_BOX7 := ADD_DITEM(ACB,G_BUTTON,SELECTABLE|EXIT_BTN,5,11,10,1,-1,$1180);
- SET_DTEXT(ACB,ACB_BOX7,'BUSINESS',SYSTEM_FONT,TE_CENTER);
- ACB_BOX8 := ADD_DITEM(ACB,G_BUTTON,SELECTABLE|EXIT_BTN,17,11,10,1,-1,$1180);
- SET_DTEXT(ACB,ACB_BOX8,'FOLDER',SYSTEM_FONT,TE_CENTER);
- ACB_BOX81 := ADD_DITEM(ACB,G_BUTTON,SELECTABLE|EXIT_BTN,29,11,10,1,-1,$1180);
- SET_DTEXT(ACB,ACB_BOX81,'NONE',SYSTEM_FONT,TE_CENTER);
- ACB_PROMT3 := ADD_DITEM(ACB,G_STRING,NONE,5,13,0,0,0,0);
- SET_DTEXT(ACB,ACB_PROMT3,'or enter your own :',SYSTEM_FONT,TE_LEFT);
- ACB_GET := ADD_DITEM(ACB,G_FTEXT,DEFAULT,5,15,25,1,0,$1180);
- SET_DEDIT(ACB,ACB_GET,PSA,PSB,SHW_BOX_STR,SYSTEM_FONT,TE_CENTER);
- ACB_CANCEL := ADD_DITEM(ACB,G_BUTTON,SELECTABLE|EXIT_BTN,5,17,35,1,-1,$1180);
- SET_DTEXT(ACB,ACB_CANCEL,'-------CANCEL--------',SYSTEM_FONT,TE_CENTER);
- END;
-
- FUNCTION SHOW_COM_BOX( NAME : STR255 ): BOOLEAN;
-
- BEGIN
- ADD_COM_BOX;
- SET_DTEXT(ACB,ACB_PROMT,NAME,SYSTEM_FONT,TE_LEFT);
- CENTER_DIALOG(ACB);
- DUMMY := DO_DIALOG(ACB,ACB_GET);
- GET_DEDIT(ACB,ACB_GET,SHW_BOX_STR);
- IF OBJ_STATE(ACB,ACB_GET) & SELECTED <> 0 THEN
- BEGIN
- OBJ_SETSTATE(ACB,ACB_GET,NONE,TRUE);
- SHOW_COM_BOX := TRUE;
- END;
- IF OBJ_STATE(ACB,ACB_BOX1) & SELECTED <> 0 THEN
- BEGIN
- OBJ_SETSTATE(ACB,ACB_BOX1,NONE,TRUE);
- SHW_BOX_STR := 'GAMES AND ENTERTAINMENT';
- SHOW_COM_BOX := TRUE;
- END;
- IF OBJ_STATE(ACB,ACB_BOX2) & SELECTED <> 0 THEN
- BEGIN
- OBJ_SETSTATE(ACB,ACB_BOX2,NONE,TRUE);
- SHW_BOX_STR := 'ART / VIDEO';
- SHOW_COM_BOX := TRUE;
- END;
- IF OBJ_STATE(ACB,ACB_BOX21) & SELECTED <> 0 THEN
- BEGIN
- OBJ_SETSTATE(ACB,ACB_BOX21,NONE,TRUE);
- SHW_BOX_STR := 'DEMONSTRATION PROGRAM';
- SHOW_COM_BOX := TRUE;
- END;
- IF OBJ_STATE(ACB,ACB_BOX3) & SELECTED <> 0 THEN
- BEGIN
- OBJ_SETSTATE(ACB,ACB_BOX3,NONE,TRUE);
- SHW_BOX_STR := 'UTILITY PROGRAM';
- SHOW_COM_BOX := TRUE;
- END;
- IF OBJ_STATE(ACB,ACB_BOX4) & SELECTED <> 0 THEN
- BEGIN
- OBJ_SETSTATE(ACB,ACB_BOX4,NONE,TRUE);
- SHW_BOX_STR := 'TELECOM PROGRAM';
- SHOW_COM_BOX := TRUE;
- END;
- IF OBJ_STATE(ACB,ACB_BOX41) & SELECTED <> 0 THEN
- BEGIN
- OBJ_SETSTATE(ACB,ACB_BOX41,NONE,TRUE);
- SHW_BOX_STR := 'DATA FILE';
- SHOW_COM_BOX := TRUE;
- END;
- IF OBJ_STATE(ACB,ACB_BOX5) & SELECTED <> 0 THEN
- BEGIN
- OBJ_SETSTATE(ACB,ACB_BOX5,NONE,TRUE);
- SHW_BOX_STR := 'PROGRAMMING LANGUAGE';
- SHOW_COM_BOX := TRUE;
- END;
- IF OBJ_STATE(ACB,ACB_BOX6) & SELECTED <> 0 THEN
- BEGIN
- OBJ_SETSTATE(ACB,ACB_BOX6,NONE,TRUE);
- SHW_BOX_STR := 'DOCUMENT FILE';
- SHOW_COM_BOX := TRUE;
- END;
- IF OBJ_STATE(ACB,ACB_BOX61) & SELECTED <> 0 THEN
- BEGIN
- OBJ_SETSTATE(ACB,ACB_BOX61,NONE,TRUE);
- SHW_BOX_STR := 'DESK ACCESSORY PROGRAM';
- SHOW_COM_BOX := TRUE;
- END;
- IF OBJ_STATE(ACB,ACB_BOX7) & SELECTED <> 0 THEN
- BEGIN
- OBJ_SETSTATE(ACB,ACB_BOX7,NONE,TRUE);
- SHW_BOX_STR := 'BUSINESS APPLICATION';
- SHOW_COM_BOX := TRUE;
- END;
- IF OBJ_STATE(ACB,ACB_BOX8) & SELECTED <> 0 THEN
- BEGIN
- OBJ_SETSTATE(ACB,ACB_BOX8,NONE,TRUE);
- SHW_BOX_STR := 'SYSTEM FOLDER';
- SHOW_COM_BOX := TRUE;
- END;
- IF OBJ_STATE(ACB,ACB_BOX81) & SELECTED <> 0 THEN
- BEGIN
- OBJ_SETSTATE(ACB,ACB_BOX81,NONE,TRUE);
- SHW_BOX_STR := ' ';
- SHOW_COM_BOX := TRUE;
- END;
- IF OBJ_STATE(ACB,ACB_CANCEL) & SELECTED <> 0 THEN
- BEGIN
- OBJ_SETSTATE(ACB,ACB_CANCEL,NONE,TRUE);
- SHOW_COM_BOX := FALSE;
- END;
- UPERCASE(SHW_BOX_STR);
- END_DIALOG(ACB);
- DELETE_DIALOG(ACB);
- END;
-
-
-
- PROCEDURE ADDCOM;
-
- VAR X : INTEGER;
- FLAG,Y : BOOLEAN;
-
- BEGIN
- IF COM_FLAG THEN
- BEGIN
- SHW_BOX_STR := '';
- FLAG := TRUE;
- X := CUR_LOC;
- REPEAT
- Y := SHOW_COM_BOX(BLNAME[X]);
- IF Y = TRUE THEN
- BEGIN
- BLCOMM[X] := SHW_BOX_STR;
- END
- ELSE FLAG := FALSE;
- X := X + 1;
- IF X = LAST_LINE THEN FLAG := FALSE;
- UNTIL FLAG = FALSE;
- SET_CLIP(SX,SY,SW,SH);
- PRNT_SCR;
- END;
- END;
-
-
- PROCEDURE SEARCH(X : INTEGER);
-
- VAR Y,Z :INTEGER;
-
- BEGIN
- IF LAST_LINE >= 2 THEN
- BEGIN
- Y:= CUR_LOC +1;
- SEARCH_FLAG := FALSE;
- CASE X OF
- 1: BEGIN
- REPEAT
- Z := POS(SHW_BOX_STR,BLNAME[SINDX[Y]]);
- IF Z <> 0 THEN
- BEGIN
- CUR_LOC := Y;
- Y := LAST_LINE;
- SEARCH_FLAG := TRUE;
- END
- ELSE
- BEGIN
- Y := Y + 1;
- IF Y > LAST_LINE THEN Y := LAST_LINE;
- END;
- UNTIL Y = LAST_LINE;
- END;
- 2: BEGIN
- REPEAT
- Z := POS(SHW_BOX_STR,BLNAME[SINDX[Y]]);
- IF Z <> 0 THEN
- BEGIN
- CUR_LOC := Y;
- Y := LAST_LINE;
- SEARCH_FLAG := TRUE;
- END
- ELSE
- BEGIN
- Y := Y + 1;
- IF Y > LAST_LINE THEN Y := LAST_LINE;
- END;
- UNTIL Y = LAST_LINE;
- END;
- 3: BEGIN
- INSERT('/',SHW_BOX_STR,3);
- INSERT('/',SHW_BOX_STR,6);
- REPEAT
- Z := POS(SHW_BOX_STR,BLDATE[SINDX[Y]]);
- IF Z <> 0 THEN
- BEGIN
- CUR_LOC := Y;
- Y := LAST_LINE;
- SEARCH_FLAG := TRUE;
- END
- ELSE
- BEGIN
- Y := Y + 1;
- IF Y > LAST_LINE THEN Y := LAST_LINE;
- END;
- UNTIL Y = LAST_LINE;
- END;
- 4: BEGIN
- REPEAT
- Z := POS(SHW_BOX_STR,BLDN[SINDX[Y]]);
- IF Z <> 0 THEN
- BEGIN
- CUR_LOC := Y;
- Y := LAST_LINE;
- SEARCH_FLAG := TRUE;
- END
- ELSE
- BEGIN
- Y := Y + 1;
- IF Y > LAST_LINE THEN Y := LAST_LINE;
- END;
- UNTIL Y = LAST_LINE;
- END;
- 5: BEGIN
- REPEAT
- Z := POS(SHW_BOX_STR,BLFOLD[SINDX[Y]]);
- IF Z <> 0 THEN
- BEGIN
- CUR_LOC := Y;
- Y := LAST_LINE;
- SEARCH_FLAG := TRUE;
- END
- ELSE
- BEGIN
- Y := Y + 1;
- IF Y > LAST_LINE THEN Y := LAST_LINE;
- END;
- UNTIL Y = LAST_LINE;
- END;
- 6: BEGIN
- REPEAT
- Z := POS(SHW_BOX_STR,BLCOMM[SINDX[Y]]);
- IF Z <> 0 THEN
- BEGIN
- CUR_LOC := Y;
- Y := LAST_LINE;
- SEARCH_FLAG := TRUE;
- END
- ELSE
- BEGIN
- Y := Y + 1;
- IF Y > LAST_LINE THEN Y := LAST_LINE;
- END;
- UNTIL Y = LAST_LINE;
- END;
- END;
- END;
- END;
-
- PROCEDURE PUT_IN_BUF( DNSTR,ATMRK,NAMES,DATESTR,FOLDER : STR255);
-
- BEGIN
- TEMP_BLdn[COUNT] := DNSTR;
- TEMP_BLAT[COUNT] := ATMRK;
- TEMP_BLname[COUNT] := names;
- TEMP_BLdate[COUNT] := DATESTR;
- IF FOLDER = '' THEN
- TEMP_BLfold[COUNT] := '--------------'
- ELSE
- TEMP_BLFOLD[COUNT] := FOLDER;
- COUNT := COUNT +1;
- END;
-
- PROCEDURE XFER_CHECK;
-
- VAR X,Z : INTEGER;
-
- BEGIN
- IF (LINE_COUNT + COUNT) <= 1000 THEN
- BEGIN
- ADD_FLAG := TRUE;
- CUR_LOC := LINE_COUNT;
- FOR X:= 0 TO COUNT -1 DO
- BEGIN
- BLDN[LINE_COUNT] := TEMP_BLDN[X];
- BLAT[LINE_COUNT] := TEMP_BLAT[X];
- BLNAME[LINE_COUNT] := TEMP_BLNAME[X];
- BLDATE[LINE_COUNT] := TEMP_BLDATE[X];
- BLFOLD[LINE_COUNT] := TEMP_BLFOLD[X];
- LINE_COUNT := LINE_COUNT +1;
- END;
- TOTAL_LINES := LINE_COUNT;
- LAST_LINE := LINE_COUNT;
- END
- ELSE
- BEGIN
- Z := DO_ALERT('[3][THIS DISK EXCEEDS|THE 1000 FILE LIMIT][ ABORT ]',1);
- ADD_FLAG := FALSE;
- END;
- END;
-
- FUNCTION COMPARE(X,Y,Z : INTEGER) : BOOLEAN;
-
- BEGIN
- COMPARE := FALSE;
- CASE Z OF
- 1: IF TEMP_BLDN[X] = BLDN[Y] THEN COMPARE := TRUE;
- 2: IF TEMP_BLAT[X] = BLAT[Y] THEN COMPARE := TRUE;
- 3: IF TEMP_BLNAME[X] = BLNAME[Y] THEN COMPARE := TRUE;
- 4: IF TEMP_BLDATE[X] = BLDATE[Y] THEN COMPARE := TRUE;
- 5: IF TEMP_BLFOLD[X] = BLFOLD[Y] THEN COMPARE := TRUE;
- END;
- END;
-
-
- PROCEDURE DEL_FILE( Y : INTEGER );
-
- VAR X,Z : INTEGER;
-
- BEGIN
- FOR X := Y TO LAST_LINE DO
- BEGIN
- BLDN[X] := BLDN[X +1];
- BLAT[X] := BLAT[X +1];
- BLNAME[X] := BLNAME[X +1];
- BLDATE[X] := BLDATE[X +1];
- BLFOLD[X] := BLFOLD[X +1];
- BLCOMM[X] := BLCOMM[X +1];
- END;
- LINE_COUNT := LINE_COUNT -1;
- END;
-
- PROCEDURE COMP_FILES;
-
- VAR C,FLAG : BOOLEAN;
- Y,X : INTEGER;
-
- BEGIN
- X := 0;
- Y := 0;
- C := FALSE;
- FLAG := TRUE;
- FOR Y := 0 TO LAST_LINE DO
- BEGIN
- REPEAT
- C := COMPARE(X,Y,1);
- IF C = TRUE THEN
- BEGIN
- DEL_FILE(Y);
- FLAG := FALSE;
- END;
- UNTIL C = FALSE;
- END;
- IF FLAG THEN LAST_DISK := LAST_DISK + 1;
- END;
-
-
-
- PROCEDURE G_DIR;
-
- TYPE
- fn_range = 1..14 ;
- fnd_range = 1..255;
- fname = PACKED ARRAY [ fn_range ] OF char ;
- frec = PACKED RECORD
- reserved : PACKED ARRAY [ 0..19 ] OF byte ;
- resvd2 : byte ;
- attrib : byte ;
- time_stamp : integer ;
- date_stamp : integer ;
- size : long_integer ;
- name : fname ;
- END ;
- PATH_NAME = PACKED ARRAY [1..255] OF CHAR;
- VAR
- r : frec ;
- i : fnd_range;
- names,QUT : string[14];
- file_map : array [0..80]of array [0..20] of string[14];
- attrib_map : array [0..80]of array [0..20] of byte;
- map_point : array [0..20] of integer;
- depth,index,x,y,LINDEX : integer;
- path : path_name ;
- FN_FLAG : ARRAY[0..20] OF BOOLEAN;
- LAST_FN : ARRAY[0..20] OF STRING [14];
- INBUF : STRING;
-
- PROCEDURE set_dta( VAR buf : frec ) ;
- GEMDOS( $1a ) ;
-
- FUNCTION get_first( VAR path : path_name ; search_attrib :integer ):integer ;
- GEMDOS( $4e ) ;
-
- FUNCTION get_next : integer ;
- GEMDOS( $4f ) ;
-
-
- PROCEDURE EXT_RTN;
-
- BEGIN
- IF ( index <> 0 ) AND ( depth <> 0 ) then
- begin
- depth := depth - 1;
- end;
- END;
-
- PROCEDURE ADD_TO_PATH;
-
- VAR PTH : STRING;
- PTH1 : CHAR;
- I,X : INTEGER;
- BEGIN
- PTH1 := '\';
- X := POS('*',PATH_STRING);
- INSERT(pth1,path_string,X);
- INSERT(FILE_MAP[INDEX,DEPTH],path_string,X );
- FOR i := 1 TO length( path_string ) DO
- path[i] := path_string[i] ;
- path[ length(path_string) + 1] := CHR(0);
- LINDEX := LINDEX + 1;
- FN_FLAG[LINDEX] := TRUE;
- LAST_FN[LINDEX] := FILE_MAP[INDEX,DEPTH];
- END;
-
- PROCEDURE DEL_FROM_PATH;
-
- VAR PTH : STRING;
- I,X : INTEGER;
-
- BEGIN
- IF FN_FLAG[LINDEX] THEN
- BEGIN
- X := POS('*',PATH_STRING);
- Y := X - (LENGTH(LAST_FN[LINDEX])+1);
- DELETE(path_string,Y,LENGTH(LAST_FN[LINDEX]) + 1);
- FOR i := 1 TO length( path_string ) DO
- path[i] := PATH_STRING[i] ;
- path[ length( path_string ) + 1] := CHR(0);
- FN_FLAG[LINDEX] := FALSE;
- LAST_FN[LINDEX] := '';
- LINDEX := LINDEX - 1;
- END;
- END;
-
- PROCEDURE HNDL_FILE( VAR r : frec );
-
- VAR I,DATE,DATEM,DATED,DATEY,A,B : INTEGER;
- names,ATMRK : str255;
- DATESTR,DM,DD,DY,FOLDER :STR255;
-
- BEGIN
- names := '';
- A := 32;
- B := 512;
- WITH r DO
- begin
- i := 1;
- while ( i <= 14 ) AND ( name[i] <> CHR(0)) DO
- begin
- names[i] := name[i];
- i := i + 1;
- end;
- names[0] := CHR(i-1);
- DATE := DATE_STAMP;
- DATEM := DATE;
- DATED := DATE;
- DATEY := DATE;
- IF (NAMEs <> '.') AND (NAMEs <> '..') THEN
- BEGIN
- ATTRIB_MAP[index,DEPTH] := ATTRIB;
- FILE_MAP[INDEX,DEPTH] := NAMES;
- i := 1;
- IF ATTRIB = $10 THEN
- ATMRK := '* '
- ELSE
- ATMRK := ' ';
- DATEM := DATE & $1E0;
- DATEM := SHR(DATEM,5);
- DATEY := DATE & $FE00;
- DATEY := SHR(DATEY,9);
- DATED := DATE & $1F;
- DATEY := DATEY+80;
- STR(DATEM,DM);
- STR(DATEY,DY);
- STR(DATED,DD);
- A:= LENGTH(DD);
- B:= LENGTH(DM);
- IF A = 1 THEN INSERT('0',DD,1);
- IF B = 1 THEN INSERT('0',DM,1);
- DATESTR := CONCAT(DM,'/',DD,'/',DY);
- FOLDER := LAST_FN[LINDEX];
- PUT_IN_BUF(dnstr,atmrk,names,datestr,FOLDER);
- INDEX := INDEX + 1;
- end;
- end;
- end;
- PROCEDURE GF_LOOP;
-
- FORWARD;
-
- PROCEDURE GET_FILES;
-
- BEGIN
- WHILE ( INDEX <> 0) OR (DEPTH <> 0) DO
- BEGIN
- IF GET_FIRST( PATH,$10 ) < 0 THEN
- EXT_RTN
- ELSE
- REPEAT
- HNDL_FILE( r );
- UNTIL GET_NEXT < 0;
- INDEX := INDEX - 1;
- GF_LOOP;
- END;
- END;
-
- PROCEDURE GF_LOOP;
-
- BEGIN
- WHILE ( INDEX <> 0) OR ( DEPTH <> 0) DO
- BEGIN
- IF ATTRIB_MAP[INDEX,DEPTH] = $10 THEN
- BEGIN
- MAP_POINT[DEPTH] := INDEX;
- ADD_TO_PATH;
- DEPTH := DEPTH + 1;
- INDEX := 1;
- GET_FILES;
- END
- ELSE
- BEGIN
- INDEX := INDEX - 1;
- IF INDEX > 0 THEN
- GF_LOOP
- else
- begin
- depth := depth - 1;
- index := map_point[depth];
- del_from_path;
- index := index - 1;
- gf_loop;
- end;
- end;
- end;
- END;
-
-
- BEGIN
- FOR i := 1 TO length( path_string ) DO
- path[i] := path_string[i] ;
- path[ length(path_string)+1 ] := chr(0) ;
- for x := 0 to 80 do
- BEGIN
- for y := 0 to 20 do
- begin
- file_map[x,y] := '';
- attrib_map[x,y] := 0;
- end
- end;
- FOR X := 0 TO 20 DO
- BEGIN
- LAST_FN[X] := '';
- FN_FLAG[X] := FALSE;
- END;
- LINDEX := 0;
- depth := 1;
- index := 1;
- LINE_COUNT := LAST_LINE;
- COUNT := 0;
- for x := 0 to 20 do
- begin
- map_point[x] := 1;
- end;
- ADD_FLAG := FALSE;
- set_dta( r ) ;
- get_files;
- IF COUNT <> 0 THEN
- BEGIN
- COMP_FILES;
- XFER_CHECK;
- END;
- END;
-
-
-
-
- PROCEDURE DO_REDRAW( MX, MY, MW, MH : INTEGER ) ;
-
- VAR RX,RY,RW,RH : INTEGER ;
-
- BEGIN
- Hide_Mouse;
- BEGIN_UPDATE;
- First_Rect( handle,RX,RY,RW,RH ) ;
- WHILE (RW <> 0) AND (RH <> 0) DO
- BEGIN
- IF RECT_INTERSECT( MX,MY,MW,MH,RX,RY,RW,RH ) THEN
- BEGIN
- SET_CLIP(RX,RY,RW,RH);
- PRNT_SCR;
- END;
- NEXT_RECT( handle,RX,RY,RW,RH );
- END;
- END_UPDATE;
- Show_Mouse;
- END;
-
- PROCEDURE COM_CHECK;
-
- BEGIN
- IF COM_FLAG = TRUE THEN
- MENU_CHECK(MENU,COM_ITEM,FALSE)
- ELSE MENU_CHECK(MENU,COM_ITEM,TRUE);
-
- IF COM_FLAG THEN COM_FLAG := FALSE
- ELSE COM_FLAG := TRUE ;
- END;
-
-
- PROCEDURE Dialog_BOX( x : INTEGER ) ;
-
-
- VAR
- Promt_str,PSa,PSb,PSc : ARRAY [1..6] OF str255 ;
-
- BEGIN
-
- Promt_str[1] := 'Please Enter NAME :';
- PSa[1] := '____________';
- PSb[1] := 'XXXXXXXXXXXX';
- PSc[1] := '';
-
- Promt_str[2] := 'Please Enter TYPE :';
- PSa[2] := 'FILE.___';
- PSb[2] := 'FFF';
- PSc[2] := '';
-
- Promt_str[3] := 'Please Enter DATE :';
- PSa[3] := '__/__/__';
- PSb[3] := '999999';
- PSc[3] := '031786';
-
- Promt_str[4] := 'Please Enter DISK # :';
- PSa[4] := 'DISK NUMBER : ____';
- PSb[4] := '9999';
- PSc[4] := '0001';
-
- Promt_str[5] := 'Please Enter NAME :';
- PSa[5] := '____________';
- PSb[5] := 'XXXXXXXXXXXX';
- PSc[5] := '';
-
- Promt_str[6] := 'Please Enter COMMENTS :';
- PSa[6] := '_________________________';
- PSb[6] := 'XXXXXXXXXXXXXXXXXXXXXXXXX';
- PSc[6] := '';
-
- dialog[x] := New_Dialog( 4, 0, 0, 30, 8 ) ;
- prompt_item[x] := Add_DItem( dialog[x], G_String, None, 2, 1, 0, 0, 0, 0 ) ;
- Set_DText( dialog[x], prompt_item[x], Promt_str[x] ,
- System_Font, TE_Left ) ;
- GET_item[x] := Add_DItem( dialog[x], G_FText, None, 2, 3, 25, 1, 0, $1180 );
- Set_DEdit( dialog[x], GET_item[x], PSa[x], PSb[x], PSc[x],
- System_Font, TE_Center ) ;
- ok_btn[x] := Add_DItem( dialog[x], G_Button, Selectable|Exit_Btn|Default,
- 2, 5, 8, 2, 2, $1180 ) ;
- Set_DText( dialog[x], ok_btn[x], 'OK', System_Font, TE_Center ) ;
- cancel_btn[x] := Add_DItem( dialog[x], G_Button, Selectable|Exit_Btn,
- 16, 5, 8, 2, 2, $1180 ) ;
- Set_DText( dialog[x], cancel_btn[x], 'Cancel', System_Font, TE_Center ) ;
- END ;
-
-
-
- PROCEDURE Show_TYPE_box( X : INTEGER ) ;
- BEGIN
- Center_Dialog(dialog[X]);
- button[X] := Do_Dialog(dialog[X],get_item[X]);
- IF Obj_State(dialog[X],ok_btn[X]) & selected <>0 THEN
- BEGIN
- Obj_Setstate(dialog[X],ok_btn[X],none,true);
- cancel_box := false;
- END;
- IF Obj_State(dialog[X],cancel_btn[X]) & selected <>0 THEN
- BEGIN
- Obj_Setstate(dialog[X],cancel_btn[X],none,true);
- cancel_box := true;
- END;
- End_dialog(dialog[X]);
- GET_DEDIT(DIALOG[X],GET_ITEM[X],SHW_BOX_STR);
- upercase(shw_box_str);
- END;
-
- Procedure item60_proc;
-
- var x : integer;
- str1 : str255;
- test,t : boolean;
-
- begin
- if last_line >= 1 then
- begin
- show_type_box(1);
- if cancel_box = false then
- begin
- str1 := shw_box_str;
- x := 0;
- test := false;
- repeat
- if blname[x] = str1 then
- begin
- shw_box_str := blcomm[x];
- t := show_com_box(blname[x]);
- blcomm[x] := shw_box_str;
- test := true;
- end;
- x := x + 1;
- until x = last_line;
- if not test then
- dummy := do_alert('[1][File NOT found][ OK ]',1)
- else
- begin
- SET_CLIP(SX,SY,SW,SH);
- PRNT_SCR;
- end;
- end;
- end;
- end;
-
- PROCEDURE set_add_box;
-
- BEGIN
- Add_Box := New_Dialog(25,0,0,32,17);
- txt_line := Add_DItem(Add_Box,G_text,none,2,2,28,1,0,$1180);
- Set_DText(Add_Box,txt_line,'Chose Drive!',System_Font,TE_Center);
- Btn_a := Add_DItem(Add_Box,G_button,Selectable|radio_btn,
- 3,4,5,1,1,$1180);
- Set_DText(Add_box,Btn_a,'A:',System_Font,TE_Center);
- Btn_b := Add_DItem(Add_Box,G_button,Selectable|radio_btn,
- 10,4,5,1,1,$1180);
- Set_DText(Add_box,Btn_b,'B:',System_Font,TE_Center);
- Btn_c := Add_DItem(Add_Box,G_button,Selectable|radio_btn,
- 17,4,5,1,1,$1180);
- Set_DText(Add_box,Btn_c,'C:',System_Font,TE_Center);
- Btn_d := Add_DItem(Add_Box,G_button,Selectable|radio_btn,
- 24,4,5,1,1,$1180);
- Set_DText(Add_box,Btn_d,'D:',System_Font,TE_Center);
- Btn_e := Add_DItem(Add_Box,G_button,Selectable|radio_btn,
- 3,6,5,1,1,$1180);
- Set_DText(Add_box,Btn_e,'E:',System_Font,TE_Center);
- Btn_f := Add_DItem(Add_Box,G_button,Selectable|radio_btn,
- 10,6,5,1,1,$1180);
- Set_DText(Add_box,Btn_f,'F:',System_Font,TE_Center);
- Btn_g := Add_DItem(Add_Box,G_button,Selectable|radio_btn,
- 17,6,5,1,1,$1180);
- Set_DText(Add_box,Btn_g,'G:',System_Font,TE_Center);
- Btn_h := Add_DItem(Add_Box,G_button,Selectable|radio_btn,
- 24,6,5,1,1,$1180);
- Set_DText(Add_box,Btn_h,'H:',System_Font,TE_Center);
- Btn_i := Add_DItem(Add_Box,G_button,Selectable|radio_btn,
- 3,8,5,1,1,$1180);
- Set_DText(Add_box,Btn_i,'I:',System_Font,TE_Center);
- Btn_j := Add_DItem(Add_Box,G_button,Selectable|radio_btn,
- 10,8,5,1,1,$1180);
- Set_DText(Add_box,Btn_j,'J:',System_Font,TE_Center);
- Btn_k := Add_DItem(Add_Box,G_button,Selectable|radio_btn,
- 17,8,5,1,1,$1180);
- Set_DText(Add_box,Btn_k,'K:',System_Font,TE_Center);
- Btn_l := Add_DItem(Add_Box,G_button,Selectable|radio_btn,
- 24,8,5,1,1,$1180);
- Set_DText(Add_box,Btn_l,'L:',System_Font,TE_Center);
- Btn_m := Add_DItem(Add_Box,G_button,Selectable|radio_btn,
- 3,10,5,1,1,$1180);
- Set_DText(Add_box,Btn_m,'M:',System_Font,TE_Center);
- Btn_n := Add_DItem(Add_Box,G_button,Selectable|radio_btn,
- 10,10,5,1,1,$1180);
- Set_DText(Add_box,Btn_n,'N:',System_Font,TE_Center);
- Btn_o := Add_DItem(Add_Box,G_button,Selectable|radio_btn,
- 17,10,5,1,1,$1180);
- Set_DText(Add_box,Btn_o,'O:',System_Font,TE_Center);
- Btn_p := Add_DItem(Add_Box,G_button,Selectable|radio_btn,
- 24,10,5,1,1,$1180);
- Set_DText(Add_box,Btn_p,'P:',System_Font,TE_Center);
- p_name := Add_DItem( add_box, G_FText, None,
- 3, 12, 18, 1, 0, $1180 );
- Set_DEdit( add_box, p_name,'Path:_______________','PPPPPPPPPPPPPP', '\*.*',
- System_Font, TE_Center ) ;
- ok := Add_DItem( Add_box, G_Button, Selectable|Exit_Btn|Default,
- 3, 14, 8, 2, 1, $1180 ) ;
- Set_DText( Add_Box, ok, 'OK', System_Font, TE_Center ) ;
- cancel := Add_DItem( Add_Box, G_Button, Selectable|Exit_Btn,
- 21, 14, 8, 2, 1, $1180 ) ;
- Set_DText( Add_Box, cancel, 'Cancel', System_Font, TE_Center ) ;
- if adrive then obj_setstate(add_box,btn_a,shadowed|selected,false)
- else obj_setstate(add_box,btn_a,disabled,false);
- if bdrive then obj_setstate(add_box,btn_b,shadowed,false)
- else obj_setstate(add_box,btn_b,disabled,false);
- if cdrive then obj_setstate(add_box,btn_c,shadowed,false)
- else obj_setstate(add_box,btn_c,disabled,false);
- if ddrive then obj_setstate(add_box,btn_d,shadowed,false)
- else obj_setstate(add_box,btn_d,disabled,false);
- if edrive then obj_setstate(add_box,btn_e,shadowed,false)
- else obj_setstate(add_box,btn_e,disabled,false);
- if fdrive then obj_setstate(add_box,btn_f,shadowed,false)
- else obj_setstate(add_box,btn_f,disabled,false);
- if gdrive then obj_setstate(add_box,btn_g,shadowed,false)
- else obj_setstate(add_box,btn_g,disabled,false);
- if hdrive then obj_setstate(add_box,btn_h,shadowed,false)
- else obj_setstate(add_box,btn_h,disabled,false);
- if idrive then obj_setstate(add_box,btn_i,shadowed,false)
- else obj_setstate(add_box,btn_i,disabled,false);
- if jdrive then obj_setstate(add_box,btn_j,shadowed,false)
- else obj_setstate(add_box,btn_j,disabled,false);
- if kdrive then obj_setstate(add_box,btn_k,shadowed,false)
- else obj_setstate(add_box,btn_k,disabled,false);
- if ldrive then obj_setstate(add_box,btn_l,shadowed,false)
- else obj_setstate(add_box,btn_l,disabled,false);
- if mdrive then obj_setstate(add_box,btn_m,shadowed,false)
- else obj_setstate(add_box,btn_m,disabled,false);
- if ndrive then obj_setstate(add_box,btn_n,shadowed,false)
- else obj_setstate(add_box,btn_n,disabled,false);
- if odrive then obj_setstate(add_box,btn_o,shadowed,false)
- else obj_setstate(add_box,btn_o,disabled,false);
- if pdrive then obj_setstate(add_box,btn_p,shadowed,false)
- else obj_setstate(add_box,btn_p,disabled,false);
- obj_setstate(add_box,ok,outlined,false);
- if adrive then
- obj_setstate(add_box,cancel,outlined,false);
- END;
-
- PROCEDURE Add_Dir;
-
- VAR Button1 : INTEGER;
- str1,str2 : string[255];
- BEGIN
- Center_Dialog(Add_Box);
- button1 := Do_Dialog(Add_Box,p_name);
- IF Obj_State(Add_Box,ok) & selected <>0 THEN
- BEGIN
- Obj_Setstate(Add_Box,ok,outlined,true);
- ADD_FLAG := TRUE;
- END;
- IF Obj_State(Add_Box,cancel) & selected <>0 THEN
- BEGIN
- Obj_Setstate(Add_Box,cancel,outlined,true);
- ADD_FLAG := FALSE;
- END;
- End_dialog(Add_Box);
- STR1 := 'A:';
- IF OBJ_STATE(ADD_BOX,BTN_A) & SELECTED <> 0 THEN STR1 := 'A:';
- IF OBJ_STATE(ADD_BOX,BTN_B) & SELECTED <> 0 THEN STR1 := 'B:';
- IF OBJ_STATE(ADD_BOX,BTN_C) & SELECTED <> 0 THEN STR1 := 'C:';
- IF OBJ_STATE(ADD_BOX,BTN_D) & SELECTED <> 0 THEN STR1 := 'D:';
- IF OBJ_STATE(ADD_BOX,BTN_E) & SELECTED <> 0 THEN STR1 := 'E:';
- IF OBJ_STATE(ADD_BOX,BTN_F) & SELECTED <> 0 THEN STR1 := 'F:';
- IF OBJ_STATE(ADD_BOX,BTN_G) & SELECTED <> 0 THEN STR1 := 'G:';
- IF OBJ_STATE(ADD_BOX,BTN_H) & SELECTED <> 0 THEN STR1 := 'H:';
- IF OBJ_STATE(ADD_BOX,BTN_I) & SELECTED <> 0 THEN STR1 := 'I:';
- IF OBJ_STATE(ADD_BOX,BTN_J) & SELECTED <> 0 THEN STR1 := 'J:';
- IF OBJ_STATE(ADD_BOX,BTN_K) & SELECTED <> 0 THEN STR1 := 'K:';
- IF OBJ_STATE(ADD_BOX,BTN_L) & SELECTED <> 0 THEN STR1 := 'L:';
- IF OBJ_STATE(ADD_BOX,BTN_M) & SELECTED <> 0 THEN STR1 := 'M:';
- IF OBJ_STATE(ADD_BOX,BTN_N) & SELECTED <> 0 THEN STR1 := 'N:';
- IF OBJ_STATE(ADD_BOX,BTN_O) & SELECTED <> 0 THEN STR1 := 'O:';
- IF OBJ_STATE(ADD_BOX,BTN_P) & SELECTED <> 0 THEN STR1 := 'P:';
- GET_DEDIT(ADD_BOX,P_NAME,STR2);
- PATH_STRING := CONCAT(STR1,STR2);
- END;
-
- PROCEDURE SET_SORT_BOX;
-
-
- BEGIN
- Sort_Box := New_Dialog(22,0,0,26,14);
- txtln := Add_DItem(Sort_Box,G_text,none,2,1,10,1,0,$1180);
- Set_DText(Sort_Box,txtln,'Chose a ',System_Font,TE_Center);
- txtln1 := Add_DItem(Sort_Box,G_text,none,2,2,10,1,0,$1180);
- Set_DText(Sort_Box,txtln1,'FIELD to',System_Font,TE_Center);
- txtln2 := Add_DItem(Sort_Box,G_text,none,2,3,10,1,0,$1180);
- Set_DText(Sort_Box,txtln2,'Sort on.',System_Font,TE_Center);
- Btn_na := Add_DItem(Sort_Box,G_button,Selectable|radio_btn,
- 14,1,10,1,1,$1180);
- Set_DText(Sort_box,Btn_na,'NAME',System_Font,TE_Center);
- Btn_ty := Add_DItem(Sort_Box,G_button,Selectable|radio_btn,
- 14,3,10,1,1,$1180);
- Set_DText(Sort_box,Btn_ty,'TYPE',System_Font,TE_Center);
- Btn_da := Add_DItem(Sort_Box,G_button,Selectable|radio_btn,
- 14,5,10,1,1,$1180);
- Set_DText(Sort_box,Btn_da,'DATE',System_Font,TE_Center);
- Btn_di := Add_DItem(Sort_Box,G_button,Selectable|radio_btn,
- 14,7,10,1,1,$1180);
- Set_DText(Sort_box,Btn_di,'DISK #',System_Font,TE_Center);
- Btn_fo := Add_DItem(Sort_Box,G_button,Selectable|radio_btn,
- 14,9,10,1,1,$1180);
- Set_DText(Sort_box,Btn_fo,'FOLDER',System_Font,TE_Center);
- Btn_co := Add_DItem(Sort_Box,G_button,Selectable|radio_btn,
- 14,11,10,1,1,$1180);
- Set_DText(Sort_box,Btn_co,'COMMENTS',System_Font,TE_Center);
- ok1 := Add_DItem( Sort_box, G_Button, Selectable|Exit_Btn|Default,
- 2,6, 8, 2, 1, $1180 ) ;
- Set_DText( Sort_Box, ok1, 'OK', System_Font, TE_Center ) ;
- cancel1 := Add_DItem( Sort_Box, G_Button, Selectable|Exit_Btn,
- 2,10, 8, 2, 1, $1180 ) ;
- Set_DText( Sort_Box, cancel1, 'Cancel', System_Font, TE_Center ) ;
- obj_setstate(Sort_box,btn_na,shadowed|selected,false);
- obj_setstate(Sort_box,btn_ty,shadowed,false);
- obj_setstate(Sort_box,btn_da,shadowed,false);
- obj_setstate(Sort_box,btn_di,shadowed,false);
- obj_setstate(Sort_box,btn_fo,shadowed,false);
- obj_setstate(Sort_box,btn_co,shadowed,false);
- END;
-
-
- PROCEDURE Sort_type;
-
- VAR Button1,DUMMY : INTEGER;
-
- BEGIN
- dummy := 0;
- Center_Dialog(Sort_Box);
- button1 := Do_Dialog(Sort_Box,DUMMY);
- IF Obj_State(Sort_Box,ok1) & selected <>0 THEN
- BEGIN
- Obj_Setstate(Sort_Box,ok1,none,true);
- cancel_box := false;
- END;
- IF Obj_State(Sort_Box,cancel1) & selected <>0 THEN
- BEGIN
- Obj_Setstate(Sort_Box,cancel1,none,true);
- cancel_box := true;
- END;
- End_dialog(Sort_Box);
- if cancel_box = false then
- begin
- SET_WINFO(HANDLE,WSTITLE);
- IF OBJ_STATE(SORT_BOX,BTN_NA) & SELECTED <> 0 THEN
- QSORT(0,LAST_LINE -1,2);
- IF OBJ_STATE(SORT_BOX,BTN_DA) & SELECTED <> 0 THEN
- QSORT(0,LAST_LINE -1,3);
- IF OBJ_STATE(SORT_BOX,BTN_DI) & SELECTED <> 0 THEN
- QSORT(0,LAST_LINE -1,1);
- IF OBJ_STATE(SORT_BOX,BTN_FO) & SELECTED <> 0 THEN
- QSORT(0,LAST_LINE -1,4);
- IF OBJ_STATE(SORT_BOX,BTN_CO) & SELECTED <> 0 THEN
- QSORT(0,LAST_LINE -1,5);
- IF OBJ_STATE(SORT_BOX,BTN_TY) & SELECTED <> 0 THEN
- QSORT(0,LAST_LINE -1,6);
- IF TITLE_BAR = FALSE THEN SET_TITLE_BAR(1);
- IF TITLE_BAR = TRUE THEN SET_TITLE_BAR(2);
- end;
- END;
-
- FUNCTION CHOOSE_BOX : INTEGER;
-
- VAR Button1,DUMMY : INTEGER;
-
- BEGIN
- dummy := 0;
- Center_Dialog(Sort_Box);
- button1 := Do_Dialog(Sort_Box,DUMMY);
- IF Obj_State(Sort_Box,ok1) & selected <>0 THEN
- BEGIN
- Obj_Setstate(Sort_Box,ok1,none,true);
- cancel_box := false;
- END;
- IF Obj_State(Sort_Box,cancel1) & selected <>0 THEN
- BEGIN
- Obj_Setstate(Sort_Box,cancel1,none,true);
- cancel_box := true;
- END;
- End_dialog(Sort_Box);
- if cancel_box = false then
- begin
- IF OBJ_STATE(SORT_BOX,BTN_NA) & SELECTED <> 0 THEN
- CHOOSE_BOX := 1;
- IF OBJ_STATE(SORT_BOX,BTN_DA) & SELECTED <> 0 THEN
- CHOOSE_BOX := 3;
- IF OBJ_STATE(SORT_BOX,BTN_DI) & SELECTED <> 0 THEN
- CHOOSE_BOX := 4;
- IF OBJ_STATE(SORT_BOX,BTN_FO) & SELECTED <> 0 THEN
- CHOOSE_BOX := 5;
- IF OBJ_STATE(SORT_BOX,BTN_CO) & SELECTED <> 0 THEN
- CHOOSE_BOX := 6;
- IF OBJ_STATE(SORT_BOX,BTN_TY) & SELECTED <> 0 THEN
- CHOOSE_BOX := 2;
- end;
- END;
-
-
- PROCEDURE SCR_BLACK;
-
- BEGIN
- TEXT_COLOR(0);
- line_COLOR(0);
- paint_COLOR(2);
- SET_CLIP(SX,SY,SW,SH);
- HIDE_MOUSE;
- PRNT_SCR;
- SHOW_MOUSE;
- COLOR_FLAG := FALSE;
- END;
-
- PROCEDURE SCR_WHITE;
-
- BEGIN
- TEXT_COLOR(1);
- line_COLOR(1);
- paint_COLOR(0);
- SET_CLIP(SX,SY,SW,SH);
- HIDE_MOUSE;
- PRNT_SCR;
- SHOW_MOUSE;
- COLOR_FLAG := TRUE;
- END;
-
-
- PROCEDURE ARROW_RTN(HANDLE,X : INTEGER);
- VAR CW,CH,BW,BH : INTEGER;
- MAX : REAL;
- BEGIN
- SYS_FONT_SIZE(CW,CH,BW,BH);
- WORK_RECT(HANDLE,SX,SY,SW,SH);
- MAX := SH DIV BH;
-
- CASE X OF
- 0: BEGIN
- CUR_LOC := CUR_LOC - TRUNC(MAX);
- IF CUR_LOC < 0 THEN CUR_LOC := 0;
- SET_CLIP(SX,SY,SW,SH);
- PRNT_SCR;
- VSPOS( CUR_LOC );
- END;
- 1: BEGIN
- CUR_LOC := CUR_LOC + TRUNC(MAX);
- IF CUR_LOC > (TOTAL_LINES -14) THEN CUR_LOC := TRUNC(TOTAL_LINES -14 );
- SET_CLIP(SX,SY,SW,SH);
- PRNT_SCR;
- VSPOS( CUR_LOC );
- END;
- 2: BEGIN
- CUR_LOC := CUR_LOC - 1;
- IF CUR_LOC < 0 THEN CUR_LOC := 0;
- SET_CLIP(SX,SY,SW,SH);
- PRNT_SCR;
- VSPOS( CUR_LOC );
- END;
- 3: BEGIN
- CUR_LOC := CUR_LOC + 1;
- IF CUR_LOC > (TOTAL_LINES -14) THEN CUR_LOC := TRUNC(TOTAL_LINES -14 );
- SET_CLIP(SX,SY,SW,SH);
- VSPOS( CUR_LOC );
- PRNT_SCR;
- END;
- 4: ;
- 5: ;
- 6: ;
- 7: ;
- END;
- END;
-
- PROCEDURE VSLIDER ( HANDLE,MOVED : INTEGER );
- VAR A : INTEGER;
- MVD,ADJ : REAL;
- BEGIN
- ADJ := 1000 / TOTAL_LINES;
- MVD := MOVED;
- CUR_LOC := ROUND(MVD / ADJ);
- IF CUR_LOC >= 14 THEN CUR_LOC := CUR_LOC - 14;
- SET_CLIP(SX,SY,SW,SH);
- PRNT_SCR;
- VSPOS( CUR_LOC );
- END;
-
- PROCEDURE PRINT_B;
-
- VAR X,DUMMY : INTEGER;
- BLOCK,ALERT1 : STR255;
-
- BEGIN
- alert1 := '[3][Make sure your printer is connected.][ OK | CANCEL ]';
- dummy := Do_alert( alert1, 1);
- IF DUMMY = 1 THEN
- BEGIN
- IF BUFFER_FLAG THEN
- BEGIN
- REWRITE(OUTPUT_FILE,'PRN:');
- BLOCK :='D# |F |FILENAME |DATE |FOLDER |COMMENTS.... ';
- WRITELN(OUTPUT_FILE,BLOCK);
- FOR X := 0 TO (PRNT_COUNT -1) DO
- BEGIN
- BLOCK := ' ';
- INSERT(BLDN[PINDX[X]],BLOCK,1);
- INSERT(BLAT[PINDX[X]],BLOCK,5);
- INSERT(BLNAME[PINDX[X]],BLOCK,8);
- INSERT(BLDATE[PINDX[X]],BLOCK,22);
- INSERT(BLFOLD[PINDX[X]],BLOCK,32);
- INSERT(BLCOMM[PINDX[X]],BLOCK,48);
- BLOCK[0] := CHR(80);
- WRITELN(OUTPUT_FILE,BLOCK);
- END;
- END
- ELSE
- DUMMY := DO_ALERT('[1][BUFFER EMPTY][ CANCEL ]',1);
- END;
- END;
-
- PROCEDURE PRINT_D;
-
- VAR X,Y : INTEGER;
- BLOCK,ALERT1,FN : STR255;
-
- BEGIN
- IF GET_IN_FILE(PATH_NM1,FULL_NAME) THEN
- BEGIN
- REWRITE(OUT_FILE,FULL_NAME);
- BLOCK :='D# |F |FILENAME |DATE |FOLDER |COMMENTS.... ';
- WRITELN(OUT_FILE,BLOCK);
- FOR X := 0 TO TRUNC(TOTAL_LINES) DO
- BEGIN
- BLOCK := ' ';
- INSERT(BLDN[SINDX[X]],BLOCK,1);
- INSERT(BLAT[SINDX[X]],BLOCK,5);
- INSERT(BLNAME[SINDX[X]],BLOCK,8);
- INSERT(BLDATE[SINDX[X]],BLOCK,22);
- INSERT(BLFOLD[SINDX[X]],BLOCK,32);
- INSERT(BLCOMM[SINDX[X]],BLOCK,48);
- BLOCK[0] := CHR(75);
- WRITELN(OUT_FILE,BLOCK);
- END;
- CLOSE(OUT_FILE);
- END;
- END;
- PROCEDURE PRINT_D1;
-
- VAR X,Y : INTEGER;
- BLOCK,ALERT1,FN : STR255;
-
- BEGIN
- IF BUFFER_FLAG THEN
- BEGIN
- IF GET_IN_FILE(PATH_NM1,FULL_NAME) THEN
- BEGIN
- REWRITE(OUT_FILE,FULL_NAME);
- BLOCK :='D# |F |FILENAME |DATE |FOLDER |COMMENTS.... ';
- WRITELN(OUT_FILE,BLOCK);
- FOR X := 0 TO (PRNT_COUNT -1) DO
- BEGIN
- BLOCK := ' ';
- INSERT(BLDN[PINDX[X]],BLOCK,1);
- INSERT(BLAT[PINDX[X]],BLOCK,5);
- INSERT(BLNAME[PINDX[X]],BLOCK,8);
- INSERT(BLDATE[PINDX[X]],BLOCK,22);
- INSERT(BLFOLD[PINDX[X]],BLOCK,32);
- INSERT(BLCOMM[PINDX[X]],BLOCK,48);
- BLOCK[0] := CHR(75);
- WRITELN(OUT_FILE,BLOCK);
- END;
- CLOSE(OUT_FILE);
- END;
- END
- ELSE
- X := DO_ALERT('[3][BUFFER EMPTY][ CANCEL ]',1);
- END;
-
- PROCEDURE PRINT_P;
-
- VAR X,DUMMY : INTEGER;
- BLOCK,ALERT1 : STR255;
-
- BEGIN
- alert1 := '[3][Make sure your printer is connected.][ OK | CANCEL ]';
- dummy := Do_alert( alert1, 1);
- IF DUMMY = 1 THEN
- BEGIN
- REWRITE(OUTPUT_FILE,'PRN:');
- BLOCK :='D# |F |FILENAME |DATE |FOLDER |COMMENTS.... ';
- WRITELN(OUTPUT_FILE,BLOCK);
- FOR X := 0 TO TRUNC(TOTAL_LINES) DO
- BEGIN
- BLOCK := ' ';
- INSERT(BLDN[SINDX[X]],BLOCK,1);
- INSERT(BLAT[SINDX[X]],BLOCK,5);
- INSERT(BLNAME[SINDX[X]],BLOCK,8);
- INSERT(BLDATE[SINDX[X]],BLOCK,22);
- INSERT(BLFOLD[SINDX[X]],BLOCK,32);
- INSERT(BLCOMM[SINDX[X]],BLOCK,48);
- BLOCK[0] := CHR(80);
- WRITELN(OUTPUT_FILE,BLOCK);
- END;
- END;
- END;
-
- PROCEDURE PRINT_S;
-
- VAR A,Y,Z,V,ANS : INTEGER;
- FLAG,T : BOOLEAN;
- STR,STR1 : STR255;
-
- BEGIN
- V := PRNT_COUNT;
- A := CHOOSE_BOX;
- IF A = 6 THEN T := SHOW_COM_BOX('--------------')
- ELSE SHOW_TYPE_BOX(A);
- IF CANCEL_BOX = FALSE THEN
- BEGIN
- Y := CUR_LOC;
- REPEAT
- FLAG := FALSE;
- Z := CUR_LOC;
- SEARCH(A);
- IF SEARCH_FLAG = TRUE THEN
- BEGIN
- STR1 :='FOUND...... ';
- CASE A OF
- 1: STR := CONCAT(STR1,BLNAME[SINDX[CUR_LOC]]);
- 2: STR := CONCAT(STR1,BLNAME[SINDX[CUR_LOC]]);
- 3: STR := CONCAT(STR1,BLNAME[SINDX[CUR_LOC]],' ',BLDATE[SINDX[CUR_LOC]]);
- 4: STR := CONCAT(STR1,BLNAME[SINDX[CUR_LOC]],' ',BLDN[SINDX[CUR_LOC]]);
- 5: STR := CONCAT(STR1,BLNAME[SINDX[CUR_LOC]],' ',BLFOLD[SINDX[CUR_LOC]]);
- 6: STR := CONCAT(STR1,BLNAME[SINDX[CUR_LOC]],' ',BLCOMM[SINDX[CUR_LOC]]);
- END;
- SET_WINFO(HANDLE,STR);
- ANS := DO_ALERT('[1][ADD TO PRINT BUFFER ?][ YES | NO ]',1);
- IF ANS = 1 THEN
- BEGIN
- PINDX[PRNT_COUNT] := SINDX[CUR_LOC];
- PRNT_COUNT := PRNT_COUNT +1;
- BUFFER_FLAG := TRUE;
- END;
- FLAG := TRUE;
- END;
- UNTIL FLAG = FALSE;
- CUR_LOC := Y;
- END;
- IF PRNT_COUNT = V THEN
- A := DO_ALERT('[3][NO FILES FOUND][ CANCEL ]',1);
- END;
-
- PROCEDURE PRINT( X : INTEGER );
- VAR A : INTEGER;
-
- BEGIN
- A := DO_ALERT('[2][WHERE WOULD YOU LIKE TO PRINT][ PRINTER | DISK ]',1);
- CASE X OF
- 1: BEGIN
- IF A = 1 THEN PRINT_P
- ELSE PRINT_D;
- END;
- 2: BEGIN
- IF A = 1 THEN PRINT_B
- ELSE PRINT_D1;
- END;
- END;
- END;
-
- PROCEDURE PRINT_CLEAR;
-
- VAR X : INTEGER;
-
- BEGIN
- X := DO_ALERT
- ('[2][ARE YOU SURE YOU WANT|THE PRINT BUFFER CLEARED][ YES | NO WAY ]',2);
- IF X = 1 THEN
- BEGIN
- PRNT_COUNT := 0;
- BUFFER_FLAG := FALSE;
- FOR X := 0 TO 1100 DO
- PINDX[X] := X;
- X := DO_ALERT('[1][THE PRINT BUFFER HAS BEEN ERASED][ OK ]',1);
- END;
- END;
-
- PROCEDURE PRINT_QUERY;
-
- VAR ANSWER : INTEGER;
-
- BEGIN
- ANSWER := DO_ALERT(
- '[2][WOULD YOU LIKE TO ADD|THIS FILE TO THE|PRINT BUFFER][ YES | NO ]',1);
- IF ANSWER = 1 THEN
- BEGIN
- PINDX[PRNT_COUNT] := SINDX[CUR_LOC];
- PRNT_COUNT := PRNT_COUNT + 1;
- BUFFER_FLAG := TRUE;
- END;
- END;
-
- PROCEDURE P_SCRN;
-
- BEGIN
- SET_CLIP(SX,SY,SW,SH);
- PRNT_SCR;
- VSPOS( CUR_LOC );
- END;
-
- PROCEDURE SRCH_T(X : INTEGER);
-
- VAR TEMP : INTEGER;
- STR,STR1 : STR255;
- T : BOOLEAN;
-
- begin
- SHW_BOX_STR := '';
- IF X = 6 THEN T := SHOW_COM_BOX('--------------')
- ELSE SHOW_TYPE_BOX(X);
- IF CANCEL_BOX = FALSE THEN
- BEGIN
- TEMP := CUR_LOC;
- SEARCH(X);
- IF TEMP <> CUR_LOC THEN
- BEGIN
- STR1 :='FOUND...... ';
- CASE X OF
- 1: STR := CONCAT(STR1,BLNAME[SINDX[CUR_LOC]]);
- 2: STR := CONCAT(STR1,BLNAME[SINDX[CUR_LOC]]);
- 3: STR := CONCAT(STR1,BLNAME[SINDX[CUR_LOC]],' ',BLDATE[SINDX[CUR_LOC]]);
- 4: STR := CONCAT(STR1,BLNAME[SINDX[CUR_LOC]],' ',BLDN[SINDX[CUR_LOC]]);
- 5: STR := CONCAT(STR1,BLNAME[SINDX[CUR_LOC]],' ',BLFOLD[SINDX[CUR_LOC]]);
- 6: STR := CONCAT(STR1,BLNAME[SINDX[CUR_LOC]],' ',BLCOMM[SINDX[CUR_LOC]]);
- END;
- SET_WINFO(HANDLE,STR);
- PRINT_QUERY;
- P_SCRN;
- END;
- END;
- end;
-
- PROCEDURE MAN_DELETE;
-
- VAR X,Y : INTEGER;
-
- BEGIN
- Y := CUR_LOC;
- SHOW_TYPE_BOX(1);
- IF CANCEL_BOX = FALSE THEN
- BEGIN
- SEARCH(1);
- X := CUR_LOC;
- DEL_FILE(SINDX[X]);
- CUR_LOC := Y;
- LAST_LINE := LINE_COUNT;
- P_SCRN;
- END;
- END;
-
- FUNCTION CHECK_FOLDER( X : INTEGER) : BOOLEAN;
-
- VAR STR : STR255;
-
- BEGIN
- CHECK_FOLDER := FALSE;
- STR := BLFOLD[SINDX[X]];
- IF STR <> '--------------' THEN
- BEGIN
- FOLDER := STR;
- CHECK_FOLDER := TRUE;
- END;
- END;
-
- FUNCTION SRCH( FOLDER : STR255; VAR X : INTEGER ) : BOOLEAN;
-
- VAR Y : INTEGER;
-
- BEGIN
- Y := 0;
- SRCH := FALSE;
- REPEAT
- IF FOLDER = BLNAME[SINDX[Y]] THEN
- BEGIN
- IF BLDN[SINDX[X]] = BLDN[SINDX[Y]] THEN
- BEGIN
- FOLDER := BLNAME[SINDX[Y]];
- X := Y;
- SRCH := TRUE;
- Y := LAST_LINE -1;
- END;
- END;
- Y := Y +1;
- UNTIL Y = LAST_LINE;
- END;
-
- PROCEDURE SRCH_PATH;
-
- VAR X,TEMP : INTEGER;
- Q,FLD,FLAG : BOOLEAN;
- STR,STR1 : STR255;
-
- BEGIN
- SHOW_TYPE_BOX(1);
- TEMP := CUR_LOC;
- STR := ' ********** FILE NOT FOUND **********';
- SEARCH(1);
- IF SEARCH_FLAG THEN
- BEGIN
- X := CUR_LOC;
- STR := BLNAME[SINDX[X]];
- STR1 := BLDN[SINDX[X]];
- REPEAT
- FLAG := FALSE;
- FLD := CHECK_FOLDER(X);
- IF FLD THEN
- BEGIN
- INSERT('\',STR,1);
- INSERT(FOLDER,STR,1);
- Q := SRCH(FOLDER,X);
- IF Q THEN
- BEGIN
- FLAG := TRUE;
- END;
- END;
- UNTIL FLAG = FALSE;
- END;
- CUR_LOC := TEMP;
- P_SCRN;
- IF SEARCH_FLAG = TRUE THEN
- BEGIN
- INSERT(' ',STR,1);
- INSERT(STR1,STR,1);
- INSERT('PATH = DISK # ',STR,1);
- END;
- SET_WINFO(HANDLE,STR);
- X := DO_ALERT('[3][PATH IS ON TITLE BAR][ OK ]',1);
- END;
-
- PROCEDURE ADD_FILES;
-
- BEGIN
- SHOW_TYPE_BOX(4);
- IF CANCEL_BOX = FALSE THEN
- BEGIN
- DNSTR := SHW_BOX_STR;
- ADD_DIR;
- IF ADD_FLAG THEN
- begin
- G_DIR;
- IF ADD_FLAG = TRUE THEN
- BEGIN
- VSSIZE( TOTAL_LINES );
- P_SCRN;
- ADDCOM;
- IF TITLE_BAR = TRUE THEN SET_TITLE_BAR(2);
- END;
- end;
- END;
- END;
-
- PROCEDURE FIX_SPACE;
-
- VAR X,Y : INTEGER;
- STR : STRING;
-
- BEGIN
- STR := ' ';
- FOR X := 0 TO LAST_LINE DO
- BEGIN
- Y := POS(STR,BLNAME[SINDX[X]]);
- IF Y <> 0 THEN BLNAME[X,0] := CHR(Y -1);
- Y := POS(STR,BLFOLD[SINDX[X]]);
- IF Y <> 0 THEN BLFOLD[X,0] := CHR(Y -1);
- END;
- END;
-
- PROCEDURE LOAD_DB;
-
- VAR HANDLE,X,Y,Z,Q,BAR_FLAG,COL_FLAG : INTEGER;
- NBYTES,ERR : LONG_INTEGER;
- BUF : BUF_TYPE;
- FN : STR255;
-
- BEGIN
- IF GET_IN_FILE(PATH_NM,FULL_NAME) THEN
- BEGIN
- FN := FULL_NAME;
- X := 0;
- Y := 1;
- WHILE X <= LENGTH(FN) DO
- BEGIN
- FULL_NAME[X] := FN[Y];
- X := X +1;
- Y := Y +1;
- END;
- FULL_NAME[X] := CHR(0);
- HANDLE := GEM_OPEN(FULL_NAME,0);
- IF HANDLE >= 0 THEN
- BEGIN
- NBYTES := 3;
- ERR := GEM_READ(HANDLE,NBYTES,BUF);
- IF (BUF[0] = 'D') AND (BUF[1] = 'I') AND (BUF[2] = 'R') THEN
- BEGIN
- NBYTES := 2;
- ERR := GEM_READI(HANDLE,NBYTES,LAST_LINE);
- ERR := GEM_READI(HANDLE,NBYTES,LAST_DISK);
- ERR := GEM_READI(HANDLE,NBYTES,BAR_FLAG);
- ERR := GEM_READI(HANDLE,NBYTES,COL_FLAG);
- IF ERR >= 0 THEN
- BEGIN
- FOR X := 0 TO LAST_LINE DO
- BEGIN
- NBYTES := 80;
- ERR := GEM_READ(HANDLE,NBYTES,BUF);
- Z := 0;
- FOR Y := 1 TO 4 DO
- BEGIN
- BLDN[X,Y] := BUF[Z];
- Z := Z +1;
- END;
- BLDN[X,0] := CHR(4);
- Z := 5;
- FOR Y := 1 TO 2 DO
- BEGIN
- BLAT[X,Y] := BUF[Z];
- Z := Z +1;
- END;
- BLAT[X,0] := CHR(2);
- Z := 8;
- FOR Y := 1 TO 14 DO
- BEGIN
- BLNAME[X,Y] := BUF[Z];
- Z := Z +1;
- END;
- BLNAME[X,0] := CHR(14);
- Z := 23;
- FOR Y := 1 TO 10 DO
- BEGIN
- BLDATE[X,Y] := BUF[Z];
- Z := Z +1;
- END;
- BLDATE[X,0] := CHR(10);
- Z := 34;
- FOR Y := 1 TO 14 DO
- BEGIN
- BLFOLD[X,Y] := BUF[Z];
- Z := Z +1;
- END;
- BLFOLD[X,0] := CHR(14);
- Z := 49;
- FOR Y := 1 TO 26 DO
- BEGIN
- BLCOMM[X,Y] := BUF[Z];
- Z := Z +1;
- END;
- BLCOMM[X,0] := CHR(26);
- END;
- END;
- GEM_CLOSE(HANDLE);
- TOTAL_LINES := LAST_LINE;
- CUR_LOC := 0;
- FOR X := 0 TO 1100 DO
- SINDX[X] := X;
- FIX_SPACE;
- VSSIZE( TOTAL_LINES );
- VSPOS(CUR_LOC);
- IF COL_FLAG = 1 THEN SCR_WHITE
- ELSE SCR_BLACK;
- SET_TITLE_BAR(BAR_FLAG);
- END
- ELSE
- BEGIN
- GEM_CLOSE(HANDLE);
- DUMMY := DO_ALERT('[1][THIS IS NOT A DIRECTORY FILE][ CANCEL ]',1);
- END;
- END
- ELSE
- Z := DO_ALERT('[2][DISK ERROR CHECK DISK AND TRY AGAIN][ CANCEL ]',1);
- END;
- END;
-
-
- PROCEDURE Do_Menu( title, item : integer ) ;
-
- VAR
- alert11,ALERT23 : Str255 ;
- ANUM,N : INTEGER;
-
- BEGIN
- ALERT11 :=
- '[0][PROGRAM WRITEN BY| MIKE HOLLENBECK| IN O.S.S| PERSONAL PASCAL][ OK ]';
- ALERT23 := '[2][ARE YOU SURE YOU WANT TO QUIT ?][ NO | YES ]';
- PATH_NM := 'A:\*.DIR';
- PATH_NM1 := 'A:\*.DOC';
-
-
- IF TITLE = DESK_TITLE THEN infobox;
- IF TITLE = FILE_TITLE THEN
- BEGIN
- IF ITEM = OPEN_ITEM THEN load_db;
- IF ITEM = CLOSE_ITEM THEN SAVE_DB;
- IF ITEM = ADD_ITEM THEN ADD_FILES;
- IF ITEM = DEL_ITEM THEN MAN_DELETE;
- IF ITEM = COM_ITEM THEN COM_CHECK;
- IF ITEM = ITEM60 THEN ITEM60_PROC;
- IF ITEM = QT_ITEM THEN FLAG1 := DO_ALERT(ALERT23,1);
- END;
-
- IF TITLE = SEARCH_TITLE THEN
- BEGIN
- IF ITEM = SNAME_ITEM THEN SRCH_T(1);
- IF ITEM = STYPE_ITEM THEN SRCH_T(2);
- IF ITEM = SDATE_ITEM THEN SRCH_T(3);
- IF ITEM = SDNUM_ITEM THEN SRCH_T(4);
- IF ITEM = Sfnd_ITEM THEN SRCH_PATH;
- IF ITEM = SFOLD_ITEM THEN SRCH_T(5);
- IF ITEM = COMB_ITEM THEN SRCH_T(6);
- IF ITEM = PRINTA_ITEM THEN PRINT_S;
- IF ITEM = sort_item THEN
- BEGIN
- sort_type ;
- SET_CLIP(SX,SY,SW,SH);
- PRNT_SCR;
- END;
- END;
- IF TITLE = PRINT_TITLE THEN
- BEGIN
- IF ITEM = PRINTD_ITEM THEN PRINT(1);
- IF ITEM = PRINTP_ITEM THEN PRINT(2);
- IF ITEM = PRINTC_ITEM THEN PRINT_CLEAR;
- END;
- IF TITLE = STYLE_TITLE THEN
- BEGIN
- IF ITEM = WHITE_ITEM THEN SCR_WHITE;
- IF ITEM = BLACK_ITEM THEN SCR_BLACK;
- IF ITEM = stat_ITEM THEN set_title_bar(2);
- IF ITEM = layout_ITEM THEN set_title_bar(1);
- END;
- IF TITLE = HELP_TITLE THEN
- BEGIN
- if item = item41 then item41_proc;
- if item = item42 then item42_proc;
- if item = item43 then item43_proc;
- if item = item44 then item44_proc;
- if item = item45 then item45_proc;
- if item = item46 then item46_proc;
- if item = item47 then item47_proc;
- if item = item48 then item48_proc;
- if item = item49 then item49_proc;
- if item = item50 then item50_proc;
- if item = item51 then item51_proc;
- if item = item52 then item52_proc;
- if item = item53 then item53_proc;
- if item = item54 then item54_proc;
- if item = item55 then item55_proc;
- if item = item56 then item56_proc;
- if item = item57 then item57_proc;
- if item = item58 then item58_proc;
- END;
-
- Menu_Normal( menu, title ) ;
- END ;
-
- Procedure get_line(mx,my : integer);
-
- var adj,start,x,l_num : integer;
- str1,str2,str3,STR4 : str255;
- T : BOOLEAN;
-
- begin
- if last_line > 0 then
- begin
- adj := sy + 2;
- start := my - adj;
- x := start div bh;
- l_num := x + cur_loc;
- if l_num < last_line then
- begin
- STR1 := BLNAME[SINDX[L_NUM]];
- STR2 := '[1][';
- STR3 := ' | |ADD TO PRINT BUFFER OR |EDIT COMMENT ?][ BUF | COM | CANCEL ]';
- STR4 := CONCAT(STR2,STR1,STR3);
- DUMMY := DO_ALERT(STR4,3);
- CASE DUMMY OF
- 1: BEGIN
- PINDX[PRNT_COUNT] := SINDX[L_NUM];
- PRNT_COUNT := PRNT_COUNT + 1;
- BUFFER_FLAG := TRUE;
- END;
- 2: BEGIN
- shw_box_str := blcomm[sindx[l_num]];
- T := show_com_box(blname[sindx[l_num]]);
- blcomm[sindx[l_num]] := shw_box_str;
- SET_CLIP(SX,SY,SW,SH);
- PRNT_SCR;
- END;
- 3: ;
- END;
- end;
- end;
- end;
-
- Procedure btn_event(mx,my : integer);
-
- var str1,str2,str3 : str255;
-
- begin
- case b_state of
- 0: begin
- if first_flag then
- begin
- b_state := 1;
- end
- else
- begin
- first_flag := true;
- end;
- end;
- 1: begin
- if first_flag then
- begin
- get_line(mx,my);
- first_flag := false;
- b_state := 1;
- end
- else
- begin
- b_state := 0;
- first_flag := true;
- end;
- end;
- end;
- end;
-
- Procedure tim_event;
-
- begin
- first_flag := false;
- b_state := 1;
- end;
-
- PROCEDURE Event_Loop ;
-
- VAR
- which,mouse_x,mouse_y : integer ;
- msg : Message_Buffer ;
-
- BEGIN
- MSG[0] := 0;
- REPEAT
- which := Get_Event( E_Message|E_button|E_timer, 1, b_state, 1, 2000,
- false, 0, 0, 0, 0, false, 0, 0, 0, 0, msg,
- dummy, dummy, dummy, mouse_x, mouse_y, dummy ) ;
- IF (which & E_Message) <> 0 THEN
- BEGIN
- Case Msg[0] of
- MN_Selected: Do_Menu( msg[3], msg[4] ) ;
- WM_Redraw: DO_REDRAW(MSG[4],MSG[5],MSG[6],MSG[7]) ;
- WM_Arrowed: ARROW_RTN(MSG[3],MSG[4]);
- WM_Vslid: VSLIDER( MSG[3],MSG[4]);
- WM_topped: ;
- WM_closed: CLOSE_BTN( MSG[3] );
- WM_Fulled: size_window( msg[3] ) ;
- WM_Hslid : ;
- WM_Sized: MOVE_WINDOW( MSG[3],MSG[4],MSG[5],MSG[6],MSG[7] );
- WM_MOVED: MOVE_WINDOW( MSG[3],MSG[4],MSG[5],MSG[6],MSG[7] );
- END;
- END;
- if (which & E_Button) <> 0 then
- btn_event(mouse_x,mouse_y);
-
- if (which & E_timer) <> 0 then
- tim_event;
-
- UNTIL flag1 = 2;
- END ;
-
- BEGIN
- IF Init_Gem >= 0 THEN
- BEGIN
- IF GETREZ <> 0 THEN
- BEGIN
- b_state := 1;
- first_flag := false;
- init_mouse;
- HIDE_MOUSE;
- flag1 := 0;
- system_drives;
- INIT_MENU;
- w_options := $FD3;
- WTitle := '>> The Menu <<';
- WItitle :=
- ' D# |F |FILENAME |DATE |FOLDER |COMMENTS.... ';
- wstitle :=' *** SORTING ***';
- Handle := New_Window(w_options,WTitle,0,0,0,0);
- Open_Window(Handle,0,0,0,0);
- Set_WInfo(Handle,WItitle);
- SYS_FONT_SIZE(CW,CH,bw,bh) ;
- WORK_RECT(HANDLE,SX,SY,SW,SH) ;
- wind_get(handle,wf_prevxywh,wx,wy,ww,wh);
- last_sx := wx;
- last_sy := wy;
- last_sw := ww;
- last_sh := wh;
- CUR_LOC := 0;
- scrn_size := sh div bh;
- total_lines := scrn_size;
- VSSIZE( TOTAL_LINES );
- LAST_LINE := 0;
- LAST_DISK := 0;
- wind_set(handle,wf_hslsize,1000,dummy,dummy,dummy);
- SET_CLIP(SX,SY,SW,SH) ;
- DRAW_MODE(2);
- SET_COLOR(2,0,0,1000);
- TEXT_COLOR(1);
- line_COLOR(1);
- COLOR_FLAG := TRUE;
- paint_COLOR(0);
- FOR N := 1 to 6 DO
- DIALOG_BOX(N);
- Set_Add_Box;
- set_sort_box;
- ADD_COM_BOX;
- FOR X := 0 TO 1100 DO
- BEGIN
- SINDX[X] := X;
- PINDX[X] := -1;
- BLDN[X] := ' ';
- BLAT[X] := ' ';
- BLNAME[X] := ' ';
- BLDATE[X] := ' ';
- BLFOLD[X] := ' ';
- END;
- PRNT_COUNT := 0;
- BUFFER_FLAG := FALSE;
- SHOW_MOUSE;
- infobox;
- Event_Loop ;
- Close_Window(Handle);
- Erase_Menu( menu ) ;
- SET_COLOR(2,1000,0,0);
- END
- ELSE
- DUMMY := DO_ALERT('[3][THIS PROGRAM REQUIRES | MED OR HI REZ ][ OK ]',1);
- Exit_Gem ;
- END ;
-
- END.
-